是否可以通过比较项目的属性来自动处理List.Contains?

时间:2009-03-20 11:13:59

标签: c# list equals contains iequatable

我们可以执行与List.Contains(myItem)类似的操作,以检查列表中某个项目的属性是否等于myItem上的属性。

(我们考虑了ContainsExists,例如:

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

但无法得到一个简单的表达。)

我们想要一些简单如下的内容:

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

如果至少有一个项orderLines[i]满足,则此方法应自动返回true:

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

我们已经实现IEquatable<OrderLine>等同于Product属性,但找不到如何从那里继续。

1 个答案:

答案 0 :(得分:6)

您使用的是.NET 3.5吗?如果是这样,请使用LINQ:

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