[英]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.