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

Enumerable.Cast<TResult> 메서드 (IEnumerable)

 

게시 날짜: 2016년 11월

요소에 캐스트는 IEnumerable 지정 된 형식입니다.

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

public static IEnumerable<TResult> Cast<TResult>(
	this IEnumerable source
)

매개 변수

source
Type: System.Collections.IEnumerable

IEnumerable 형식으로 캐스팅할 수를 셀 요소가 들어 있는 TResult합니다.

반환 값

Type: System.Collections.Generic.IEnumerable<TResult>

IEnumerable<T> 하는 지정된 된 형식으로 캐스팅 하는 소스 시퀀스의 각 요소를 포함 합니다.

형식 매개 변수

TResult

요소를 캐스팅할 형식을 source 에 있습니다.

Exception Condition
ArgumentNullException

sourcenull인 경우

InvalidCastException

시퀀스의 요소 형식으로 캐스팅할 수 없는 TResult합니다.

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

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

요소 형식으로 캐스팅할 수 없는 경우 TResult, 이 메서드는 예외를 throw 합니다. 형식으로 캐스팅 될 수 있는 요소에만 가져오려면 TResult, 를 사용 하 여는 OfType<TResult> 메서드 대신 Cast<TResult>(IEnumerable)합니다.

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

from int i in objects

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

System.Collections.ArrayList fruits = new System.Collections.ArrayList();
fruits.Add("mango");
fruits.Add("apple");
fruits.Add("lemon");

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

// The following code, without the cast, doesn't compile.
//IEnumerable<string> query1 =
//    fruits.OrderBy(fruit => fruit).Select(fruit => fruit);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

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

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