C#如何判断,ArrayList是否包含具有某些属性的对象

时间:2012-02-15 11:26:47

标签: c# arraylist contains

我有一个自定义类对象的ArrayList。我想知道,如果ArrayList包含具有某些属性的对象。我不关心对象,只要有一些。是的,我可以用foreach循环来做到这一点,但我想知道是否有更优雅的方法这样做。

感谢您的建议。

2 个答案:

答案 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