이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Enumerable.Cast<TResult> 메서드

2013-12-13

IEnumerable의 요소를 지정된 형식으로 변환합니다.

Namespace:  System.Linq
어셈블리:  System.Core(System.Core.dll)
public static IEnumerable<TResult> Cast<TResult>(
	this IEnumerable source
)

형식 매개 변수

TResult

source의 요소를 변환할 형식입니다.

매개 변수

source
형식: System.Collections.IEnumerable
변환할 요소가 들어 있는 IEnumerable입니다.

반환 값

형식: System.Collections.Generic.IEnumerable<TResult>
지정된 형식으로 변환되는 소스 시퀀스의 각 요소를 포함하는 IEnumerable<T>입니다.

사용 정보

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

sourcenull인 경우

InvalidCastException

시퀀스의 요소를 TResult 형식으로 캐스팅할 수 없는 경우

이 메서드는 지연된 실행을 사용하여 구현됩니다. 해당 작업을 수행하는 데 필요한 모든 정보가 저장된 개체가 즉시 반환됩니다. 이 메서드에서 나타내는 쿼리는 해당 GetEnumerator 메서드를 직접 호출하거나, foreach(Visual C#에서) 또는 For Each(Visual Basic에서)를 사용하여 개체를 열거할 때까지 실행되지 않습니다.

Cast<TResult>(IEnumerable) 메서드를 사용하면 필수 형식 정보를 제공하여 제네릭이 아닌 컬렉션에 대해 표준 쿼리 연산자를 호출할 수 있습니다. 예를 들어 System.Collections.ArrayListIEnumerable<T>을 구현하지 않지만 System.Collections.ArrayList 개체에 대해 Cast<TResult>(IEnumerable)을 호출하면 표준 쿼리 연산자를 사용하여 시퀀스를 쿼리할 수 있습니다.

요소를 TResult 형식으로 캐스팅할 수 없으면 이 메서드는 예외를 발생시킵니다. TResult 형식으로 캐스팅할 수 있는 요소만 가져오려면 Cast<TResult>(IEnumerable) 대신 OfType<TResult> 메서드를 사용합니다.

쿼리 식에서 명시적으로 형식화된 반복 변수는 Cast<TResult>(IEnumerable) 호출로 변환됩니다. 다음 예제에서는 명시적으로 형식화된 범위 변수 구문을 보여 줍니다.

from int i in objects

다음 코드 예제에서는 Cast<TResult>(IEnumerable)을 사용하여 System.Collections.ArrayList에 대해 표준 쿼리 연산자를 사용하는 방법을 보여 줍니다.


      List<string> fruits = new List<string>();
      fruits.Add("apple");
      fruits.Add("mango");

      IEnumerable<string> query =
          fruits.Cast<string>().Select(fruit => fruit);

      foreach (string fruit in query)
      {
         outputBlock.Text += fruit + "\n";
      }

      // This code produces the following output:
      //
      // apple
      // mango



Windows Phone OS

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

Windows Phone

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft. All rights reserved.