Linq删除所有

时间:2014-10-08 04:07:37

标签: c# linq

我试图用RemoveAll函数替换列表中的项目,但没有意识到它完全删除了列表的索引。是否有可以替换对象而不是删除对象的函数?我正在比较字符串。

  Items.RemoveAll(x => commonItems.Any(y => y.ItemName == x.ItemName));

或者一旦删除它,我会在同一地点用另一个空索引替换它?

1 个答案:

答案 0 :(得分:3)

您可以将RemoveAll替换为Where以获取您想要首先修改的记录:

var matches = Items.Where(x => commonItems.Any(y => y.ItemName == x.ItemName));

然后只需遍历结果并替换值:

foreach (var match in matches)
    match.ItemName = "N/A";