Linq 过滤器数组,其中包含从基类型继承的多种类型

Muk*_*thi 1 c# linq

我有一个名为 的基类A和两个子类BC

class B : A
{
    public string Description { get; set; }
}

class C : A
{
    public string AnotherProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我从返回数组的方法获取一个数组 和BC并且我想忽略集合中的项目,如果B.Description == "some text";

请帮助我如何实现这一目标。

Tim*_*ter 5

List<A> list = ....
var query = list.OfType<B>().Where(b => b.Description != "some text");
Run Code Online (Sandbox Code Playgroud)

如果您还想要所有不是的B

var query = list.Where(a => !(a is B) || ((B)a).Description != "some text"));
Run Code Online (Sandbox Code Playgroud)