我试图用RemoveAll函数替换列表中的项目,但没有意识到它完全删除了列表的索引。是否有可以替换对象而不是删除对象的函数?我正在比较字符串。
Items.RemoveAll(x => commonItems.Any(y => y.ItemName == x.ItemName));
或者一旦删除它,我会在同一地点用另一个空索引替换它?
答案 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";