我们可以做同样的事情,以检查是否在列表中的项目属性上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财产等同,但无法找到如何从那里继续。

有帮助吗?

解决方案

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

if (orderLines.Any(order => order.Product == myLine.Product))
{
    ...
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top