繁体   English   中英

C#Linq类搜索-如何过滤对象集合

[英]C# Linq class searching - how to filter object collection

我想问一下如何使用Linq过滤对象集合中的特定类?

Class1 c1 = new Class1();
Class2 c2 = new Class2();
List<object> c = new List<object>();
c.Add(c1);
c.Add(c1);
c.Add(c2);

我正在搜索这样的东西:

c.Select();
// or
IEnumerable<object> x = from y in c;

感谢您的回应。 非常感谢。

c.OfType<Class1>() // returns an IEnumerable<Class1> with all instances of Class1 within C
c.OfType<Class2>() // same thing, but for Class2

使用OfType<T>方法,然后可以在强类型IEnumerable上使用LINQ查询过滤器的其余部分。

您可以为此使用OfType<T>

var results = c.OfType<Class1>();

这个

Console.WriteLine (c.OfType<Class1>().Count());

结果是

2

附带说明: .Select()不选择任何内容。 好吧,它可以做到:它“选择”每个元素并将其投影到新对象。 但是它不会在某些条件下选择对象。 对于值,有.Where().OfType<T>选择器,还有.OfType<T>用于类型选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM