Возможно ли автоматически обрабатывать List.Содержит путем сравнения свойства элемента?

StackOverflow https://stackoverflow.com/questions/665713

Вопрос

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

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

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

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

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

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

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

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

Мы внедрили IEquatable<OrderLine> который приравнивается к Product свойство, но не может найти, как действовать дальше.

Это было полезно?

Решение

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

if (orderLines.Any(order => order.Product == myLine.Product))
{
    ...
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top