C#OfType()方法

根据其每个元素类型过滤集合。

假设您有以下包含整数和字符串元素的列表-

list.Add("Katie");
list.Add(100);
list.Add(200);

过滤集合并仅获取具有字符串类型的元素。

var myStr = from a in list.OfType<string>() select a;

对于整数类型,其工作方式相同。

var myInt = from a in list.OfType<int>() select a;

以下是完整的代码-

示例

using System;
using System.Linq;
using System.Collections;
public class Demo {
   public static void Main() {
      IList list = new ArrayList();
      list.Add("Katie");
      list.Add(100);
      list.Add(200);
      list.Add(300);
      list.Add(400);
      list.Add("Brad");
      list.Add(600);
      list.Add(700);

      var myStr = from a in list.OfType<string>() select a;
      var myInt = from a in list.OfType<int>() select a;
      Console.WriteLine("Strings...");
      foreach (var strVal in myStr) {
         Console.WriteLine(strVal);
      }
      Console.WriteLine("Integer...");
      foreach (var intVal in myInt) {
         Console.WriteLine(intVal);
      }
   }
}

输出结果

Strings...
Katie
Brad
Integer...
100
200
300
400
600
700