정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Enumerable.Single<TSource> 메서드 (IEnumerable<TSource>, Func<TSource, Boolean>)

2013-12-13

지정된 조건을 충족하는 시퀀스의 유일한 요소를 반환하고, 그러한 요소가 둘 이상이면 예외를 발생합니다.

Namespace:  System.Linq
어셈블리:  System.Core(System.Core.dll)

public static TSource Single<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

형식 매개 변수

TSource

source의 요소 형식입니다.

매개 변수

source
형식: System.Collections.Generic.IEnumerable<TSource>
단일 요소를 반환할 IEnumerable<T>입니다.
predicate
형식: System.Func<TSource, Boolean>
조건에 대해 요소를 테스트하는 함수입니다.

반환 값

형식: TSource
입력 시퀀스에서 특정 조건에 맞는 단일 요소입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 IEnumerable<TSource> 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.

예외조건
ArgumentNullException

source 또는 predicatenull입니다.

InvalidOperationException

predicate의 조건에 맞는 요소가 없는 경우

-또는-

predicate의 조건에 맞는 요소가 둘 이상인 경우

-또는-

소스 시퀀스가 비어 있습니다.

입력 시퀀스에 일치하는 요소가 없으면 Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 메서드에서 예외를 발생시킵니다. 일치하는 요소가 없는 경우 null을 대신 반환하려면 SingleOrDefault을 사용합니다.

다음 코드 예제에서는 Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)을 사용하여 배열에서 특정 조건에 맞는 단일 요소를 선택하는 방법을 보여 줍니다.


      string[] fruits = { "apple", "banana", "mango", 
                               "orange", "passionfruit", "grape" };

      string fruit1 = fruits.Single(fruit => fruit.Length > 10);

      outputBlock.Text += fruit1 + "\n";

      /*
       This code produces the following output:

       passionfruit
      */



다음 코드 예제에서는 시퀀스에서 조건에 맞는 요소가 정확히 하나가 아닐 때 Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)에서 예외를 발생시키는 것을 보여 줍니다.


      string fruit2 = null;

      try
      {
         fruit2 = fruits.Single(fruit => fruit.Length > 15);
      }
      catch (System.InvalidOperationException)
      {
         outputBlock.Text += @"The collection does not contain exactly 
                             one element whose length is greater than 15." + "\n";
      }

      outputBlock.Text += fruit2 + "\n";

      // This code produces the following output:
      //
      // The collection does not contain exactly  
      // one element whose length is greater than 15.



Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: