LINQ 过滤运算符 OfType

OfType运算符基于将集合中的元素强制转换为指定类型的能力来过滤筛选集合。

查询语法中的OfType

使用OfType运算符根据每个元素的类型筛选上述集合

IList mixedList = new ArrayList();
mixedList.Add(0);
mixedList.Add("One");
mixedList.Add("Two");
mixedList.Add(3);
mixedList.Add(new Student() { StudentID = 1, StudentName = "Bill" });

var stringResult = from s in mixedList.OfType()
                select s;

var intResult = from s in mixedList.OfType()
                select s;
示例:VB.Net中的OfType运算符:
Dim stringResult = From s In mixedList.OfType(Of String)()

上面的示例查询将返回mixedList中类型为字符串的项目。执行后,stringResult包含以下元素:

One
Two
0
3
Bill

方法语法中的OfType

您可以在linq方法语法中使用OfType <TResult>()扩展方法,如下所示。

示例:C#中的OfType
var stringResult = mixedList.OfType<string>();
示例:VB.Net中的OfType
Dim stringResult = mixedList.OfType(Of String)

stringResult将包含以下元素。

One
Two

要记住的要点

  1. Where 操作符根据谓词函数筛选集合。

  2. OfType 操作符根据给定的类型对集合进行筛选。

  3. Where OfType 扩展方法可以在一个LINQ查询中被多次调用。