C # как определить, содержит ли ArrayList объект с определенным атрибутом - PullRequest
2 голосов
/ 15 февраля 2012

У меня есть ArrayList объектов моего пользовательского класса.Я хотел бы знать, если ArrayList содержит объект с определенным атрибутом.Я не забочусь об объекте, просто если он есть.Да, я мог бы сделать это с циклом foreach, но мне было интересно, есть ли более элегантный способ сделать это.

Спасибо за предложения.

Ответы [ 2 ]

8 голосов
/ 15 февраля 2012

Ну, для начала я бы предложил использовать 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))
{
}
0 голосов
/ 15 февраля 2012

используйте 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

...