Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод Enumerable.Cast<TResult>(IEnumerable)

 

Опубликовано: Октябрь 2016

Приводит элементы 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

Свойство source имеет значение null.

InvalidCastException

Элемент в последовательности не может быть приведен к типу TResult.

Этот метод реализуется с использованием отложенного выполнения. Немедленно возвращаемое значение — это объект, который хранит все сведения, необходимые для выполнения действия. Запрос, представленный данным методом не выполняется до перечисления объекта путем непосредственного вызова его GetEnumerator метода или с помощью foreach в Visual C# или For Each в Visual Basic.

Cast<TResult>(IEnumerable) Метод включает стандартные операторы запросов вызываемая неуниверсальных коллекций, указав сведения о типе, необходимые для. Например ArrayList не реализует IEnumerable<T>, однако при вызове метода Cast<TResult>(IEnumerable) на ArrayList объекта, стандартные операторы запросов может затем использоваться для запроса последовательности.

Если элемент не может быть приведен к типу TResult, этот метод вызовет исключение. Чтобы получить только те элементы, которые может быть приведен к типу 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
Вернуться в начало
Показ: