이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Enumerable.SingleOrDefault<TSource> 메서드 (IEnumerable<TSource>)

 

게시 날짜: 2016년 11월

시퀀스가 비어 있으면 기본값을 하거나, 시퀀스의 유일한 요소를 반환 합니다. 이 메서드는 시퀀스에 요소가 둘 이상 있으면 예외를 throw 합니다.

네임스페이스:   System.Linq
어셈블리:  System.Core(System.Core.dll에 있음)

public static TSource SingleOrDefault<TSource>(
	this IEnumerable<TSource> source
)

매개 변수

source
Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> 의 단일 요소를 반환 합니다.

반환 값

Type: TSource

입력된 시퀀스의 단일 요소 또는 default(TSource) 시퀀스에 요소가 없는 경우.

형식 매개 변수

TSource

요소 형식의 source합니다.

Exception Condition
ArgumentNullException

sourcenull인 경우

InvalidOperationException

입력된 시퀀스에 요소가 둘 이상 포함합니다.

참조 및 null 허용 형식에 대 한 기본값은 null합니다.

SingleOrDefault 메서드 기본값을 지정 하는 방법을 제공 하지 않습니다. 이외의 다른 기본값을 지정 하려는 경우 default(TSource)를 사용 하 여는 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 예제 단원에 설명 된 대로 메서드.

다음 코드 예제에 사용 하는 방법을 보여 줍니다 SingleOrDefault<TSource>(IEnumerable<TSource>) 배열의 유일한 요소를 선택 합니다.

string[] fruits1 = { "orange" };

string fruit1 = fruits1.SingleOrDefault();

Console.WriteLine(fruit1);

/*
 This code produces the following output:

 orange
*/

다음 코드 예제에서는 SingleOrDefault<TSource>(IEnumerable<TSource>) 시퀀스는 정확히 하나의 요소를 포함 하지 않으면 기본 값을 반환 합니다.

string[] fruits2 = { };

string fruit2 = fruits2.SingleOrDefault();

Console.WriteLine(
    String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2);

/*
 This code produces the following output:

 No such string!
*/

값입니다 때로는 default(TSource) 컬렉션 요소가 없는 경우 사용할 기본 값이 아닙니다. 불필요 한 기본값에 대 한 결과 확인 하 고 다음 필요에 따라 변경 하는 대신 사용할 수는 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 컬렉션이 비어 있는 경우 사용할 기본값을 지정 하는 방법. 그런 다음 호출 Single<TSource>(IEnumerable<TSource>) 의 요소를 가져옵니다. 다음 코드 예제에서는 값을 가져오는 기본 1의 페이지 번호 컬렉션이 비어 있는 경우 두 가지 방법 모두를 사용 합니다. 정수에 대 한 기본값은 0 이며 일반적으로 하지 않는 유효한 페이지 번호,이 때문에 기본값 해야 수 1로 지정 합니다. 쿼리 실행이 완료 된 후 첫 번째 결과 변수에 원치 않는 기본값에 대해 검사 됩니다. 두 번째 결과 변수를 사용 하 여 가져온 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 1의 기본 값을 지정 합니다.

int[] pageNumbers = { };

// Setting the default value to 1 after the query.
int pageNumber1 = pageNumbers.SingleOrDefault();
if (pageNumber1 == 0)
{
    pageNumber1 = 1;
}
Console.WriteLine("The value of the pageNumber1 variable is {0}", pageNumber1);

// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int pageNumber2 = pageNumbers.DefaultIfEmpty(1).Single();
Console.WriteLine("The value of the pageNumber2 variable is {0}", pageNumber2);

/*
 This code produces the following output:

 The value of the pageNumber1 variable is 1
 The value of the pageNumber2 variable is 1
*/

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
3.5 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: