C# Linq的OfType()方法 – 返回序列中指定类型的元素

  • Post category:C#

C#中的Linq是一个非常强大的工具,它提供了强大的查询语句和操作方法来操作各种类型的数据结构。其中,OfType()方法是Linq中的一种非常实用的方法,此方法用于筛选指定类型的元素。本文将为您详细讲解C#Linq的OfType()方法。

什么是OfType()?

OfType()是Linq中的一个方法,用于返回指定类型的序列中的元素。通俗来讲,就是从一个集合中选择特定类型的元素。

该方法的语法为:

IEnumerable<TResult> OfType<TResult>(this IEnumerable source);

其中,source参数是要筛选的序列,而TResult参数则是要筛选出的元素的类型。

示例1

假设,我们有一个整型列表和一个字符串列表:

List<object> list = new List<object>();
list.Add(1);
list.Add("hello");
list.Add(3);
list.Add("world");

我们想要从这个列表中获取所有整数,可以使用OfType()方法:

IEnumerable<int> ints = list.OfType<int>();

上述代码中,list.OfType<int>()返回一个IEnumerable<int>类型的序列,其中只包含整数类型的元素。

示例2

假设,我们有一个包含各种动物的列表:

List<Animal> animals = new List<Animal>();
animals.Add(new Dog());
animals.Add(new Cat());
animals.Add(new Snake());

我们想要获取其中的所有狗,可以使用OfType()方法:

IEnumerable<Dog> dogs = animals.OfType<Dog>();

上述代码中,animals.OfType<Dog>()返回一个IEnumerable<Dog>类型的序列,其中只包含Dog类型的元素。

总结

OfType()方法是Linq中非常实用的一种筛选方法,可以方便地从一个序列中获取指定类型的元素。需要注意的是,只有序列中的元素是指定类型的,OfType()方法才会对其进行筛选,否则将返回一个空序列。