Приложения для Windows
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

Enumerable.OfType<TResult> - метод (IEnumerable)

 

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

Пространство имен:   System.Linq
Сборка:  System.Core (в System.Core.dll)

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

Параметры

source

Объект IEnumerable, элементы которого следует фильтровать.

Возвращаемое значение

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

Объект IEnumerable<T>, содержащий элементы входной последовательности типа TResult.

Параметры типа

TResult

Тип, по которому фильтруются элементы последовательности.

Exception Condition
ArgumentNullException

Параметр source имеет значение null.

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

Метод OfType<TResult>(IEnumerable) возвращает только те элементы последовательности source, которые приводятся к виду TResult.Чтобы вместо этого для элементов, неприводимых к виду TResult, генерировалось исключение, используйте метод Cast<TResult>(IEnumerable).

Данный метод относится к числу методов стандартных операторов запросов, которые можно применять к коллекции непараметризованного типа, такой как ArrayList.Это происходит потому, что метод OfType<TResult> расширяет тип IEnumerable. OfType<TResult> не может быть применен только к коллекциям, основанным на параметризованном типе IEnumerable<T>, а также к коллекциям на основе не параметризованного типа IEnumerable.

Применение OfType<TResult> к коллекции, реализующей интерфейс IEnumerable, дает возможность выполнять запросы к коллекции с помощью стандартных операторов запросов.Например, если задать аргумент типа Object, метод OfType<TResult> возвратит объект типа IEnumerable<Object> в C# или IEnumerable(Of Object) в Visual Basic, к которому применимы стандартные операторы запросов.

В следующем примере кода демонстрируется использование метода OfType<TResult> для фильтрации элементов коллекции IEnumerable.

System.Collections.ArrayList fruits = new System.Collections.ArrayList(4);
fruits.Add("Mango");
fruits.Add("Orange");
fruits.Add("Apple");
fruits.Add(3.0);
fruits.Add("Banana");

// Apply OfType() to the ArrayList.
IEnumerable<string> query1 = fruits.OfType<string>();

Console.WriteLine("Elements of type 'string' are:");
foreach (string fruit in query1)
{
    Console.WriteLine(fruit);
}

// The following query shows that the standard query operators such as 
// Where() can be applied to the ArrayList type after calling OfType().
IEnumerable<string> query2 =
    fruits.OfType<string>().Where(fruit => fruit.ToLower().Contains("n"));

Console.WriteLine("\nThe following strings contain 'n':");
foreach (string fruit in query2)
{
    Console.WriteLine(fruit);
}

// This code produces the following output:
//
// Elements of type 'string' are:
// Mango
// Orange
// Apple
// Banana
//
// The following strings contain 'n':
// Mango
// Orange
// Banana

Universal Windows Platform
Доступно с 4.5
.NET Framework
Доступно с 3.5
Portable Class Library
Поддерживается в версиях: portable .NET platforms
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Windows Phone
Доступно с 8.1
Вернуться в начало
Показ:
© 2016 Microsoft