2009-03-20 7 views
1

Можем ли мы сделать что-то похожее на List.Contains(myItem), чтобы проверить, соответствует ли имущество по элементу в списке значение на myItem.Можно ли автоматически обрабатывать List.Contains, сравнивая свойство объекта?

(Мы рассмотрели Contains и Exists, что-то вроде:

 
if (orderLines.Contains(myLine)) { ... } 

, но не может получить простое выражение.)

Мы хотели бы что-то столь же простое, как:

 
if (orderLines.[MethodName](myLine)) 
{ 
} 

, и этот метод должен автоматически возвращать значение true, если по крайней мере один элемент orderLines[i] выполняет:

 
myLine.Product.Equals(orderLines[i].Product) 

Мы реализовали IEquatable<OrderLine> который приравнивает по Product собственности, но не могу найти, как действовать оттуда.

ответ

6

Вы используете .NET 3.5? Если это так, используйте LINQ:

if (orderLines.Any(order => order.Product == myLine.Product)) 
{ 
    ... 
}