我有一个自定义类对象的ArrayList。我想知道,如果ArrayList包含具有某些属性的对象。我不关心对象,只要有一些。是的,我可以用foreach循环来做到这一点,但我想知道是否有更优雅的方法这样做。
感谢您的建议。
答案 0 :(得分:8)
好吧,首先我建议使用List<T>
代替ArrayList
。然后LINQ to Objects让它变得非常简单:
if (list.Any(x => x.HasFoo))
{
}
或没有LINQ(但仍然是List<T>
)
if (list.FindIndex(x => x.HasFoo) != -1)
{
}
如果你真的需要坚持使用非泛型集合,但也有LINQ to Objects可用,你可以使用:
if (arrayList.Cast<YourType>().Any(x => x.HasFoo))
{
}
答案 1 :(得分:-1)
使用Linq:
var query = from o in yourarray select o where o.atribute==ValueIWant;
`query.Count()` will return the number of objects that fit the condition.
检查msdn示例:Linq example