(LIST)如果属性匹配,替换对象,否则添加对象

本文关键字:对象 替换 添加 LIST 如果 属性 | 更新日期: 2023-09-27 17:54:53

我正在寻找一种干净有效的方法来查找某个对象属性是否与列表中的对象属性匹配。如果为true则替换,否则添加。

我知道有几种方法可以做到这一点。我的。net方法是,首先使用if (list.any(predicate)),然后获取对象并更改其属性或替换整个对象。这将是低效的,因为我遍历了列表两次。

另一种可能是手动循环。只要foreach循环列表并检查它的属性,如果它找到匹配的替换它并跳出。这将不是非常像.NET和"干净"。

我知道更多,但我不是为了错误的教导而来的。我很想看看.NET专业人士如何解决这个问题,可能在不到3行。

(LIST)如果属性匹配,替换对象,否则添加对象

也许,你可以这样使用:

var element = list.FirstOrDefault(predicate);
if (element == null)
{
    //adding
}
else
{
    //change element properties
}