是否有可能通过对项目进行比较的属性自动处理List.Contains?
-
21-08-2019 - |
题
我们可以做同样的事情,以检查是否在列表中的项目属性上List.Contains(myItem)
等于属性myItem
。
(我们已经考虑Contains
和Exists
,是这样的:
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))
{
...
}
不隶属于 StackOverflow