滤波的类型的对象与OfType在C#(Filtering the object of a type

2019-07-29 00:04发布

我有一个基类基,和A / B类,从它继承。

public class Base
{
    int x;
}
public class A : Base
{
    int y;
}
public class B : Base
{
    int z;
}

我试图用OfType筛选,我需要如下的唯一对象:

public static void RunSnippet()
{
    Base xbase; A a; B b;
    IEnumerable<Base> list = new List<Base>() {xbase, a, b};
    Base f = list.OfType<A>; // I need to get only the object A
    Console.WriteLine(f);
}

当我编译的代码,我得到这个错误:

错误CS0428:不能转换方法组“OfType”非委托类型“基地”。 你打算调用的方法?

有什么不对的代码?

Answer 1:

有两个问题:

  • OfType返回IEnumerable<T>T
  • 这是一个方法 - 你忘了括号

也许你想要的东西:

Base f = list.OfType<A>().FirstOrDefault();



Answer 2:

支架?

这是一个功能,而不是运营商。

Base f = list.OfType<A>()

退房的参考:

Enumerable.OfType(中TResult)方法



文章来源: Filtering the object of a type with OfType in C#
标签: c# linq oftype