c# - Linq 过滤器数组,包含从基类型继承的多种类型

标签 c# linq

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

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

class C : A
{
    public string AnotherProperty { get; set; }
}

我从返回 BC 数组的方法中获取一个数组,并且 如果 B.Description == "some text";

我想忽略集合中的项目

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

最佳答案

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

如果你还想要所有不是B的:

var query = list.Where(a => !(a is B) || ((B)a).Description != "some text"));

关于c# - Linq 过滤器数组,包含从基类型继承的多种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284014/

相关文章:

c# - Html.checkbox 控件表单集合值正在获取一些额外的 true false 值

c# - AngularJs 脚本在部署后不起作用,它给出错误 [$injector :unpr]

c# - LINQ 在字符串上使用 Select 返回奇怪的值

c# - 将 IObservable<IEnumerable<T>> 转换为 IEnumerable<IObservable<T>>

c# - 如何将2个查询合并为1个

c# - 如何在 Visual Studio 2012 中添加引用 `Microsoft.TeamFoundation.TestImpact.Client.dll`?

c# - 如何在 FileHelpers 中使用动态 CSV 定界符?

c# - 如何从(最初)大型对象列表中有效地过滤对象

c# - 如何找到给定时间跨度的所有数据

c# - 如何合并 Generic.Collection.List 和 Generic.Collection.Dictionary