【问题标题】:Is it possible to automatically handle List.Contains by comparing a property on the item?是否可以通过比较项目的属性来自动处理 List.Contains?
【发布时间】:2010-10-14 12:32:24
【问题描述】:

我们可以做一些类似于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 属性,但找不到从那里继续的方法。

【问题讨论】:

    标签: c# list equals contains iequatable


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多