2014-10-08 59 views
0

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

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

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

回答

3

您可以用Where取代RemoveAll得到你想要先修改记录:

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

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

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

都能跟得上您选择的权利。谢谢!! – 2014-10-08 04:23:29