【发布时间】:2014-03-30 09:06:17
【问题描述】:
如果某个对象属性与列表中的对象属性匹配,我正在寻找一种干净有效的方法来查找。如果为true则替换它,否则添加它。
我知道如何通过多种方式做到这一点。我的 .NET 方式,首先使用 if (list.any(predicate)) 然后获取对象并更改它的属性或替换整个对象。这将是低效的,因为我要遍历列表两次。
另一种可能性是手动循环。只需foreach 循环列表并检查它的属性,如果找到匹配项替换它并突破。这不会很像.NET 和“干净”。
我知道的更多,但我不是因为不正确的教导而来。我很想看看.NET 专业人士如何解决这个问题,可能不到 3 行。
【问题讨论】:
-
对我来说,使用
foreach循环似乎非常“类似于.NET”。Enumerable.Any内部可能没有做任何不同的事情。