从列表中删除找到匹配项的项目

时间:2014-02-01 21:01:32

标签: c# concatenation

我有2个列表ListOfItemsToControllstRemoveItems。我想删除ListOfItemsToControl lstRemoveItems.sItemName匹配ListOfItemsToControl.sItemName

的{{1}}

如何做到这一点?

2 个答案:

答案 0 :(得分:1)

var names = lstRemoveItems.Select(y => y.sItemName).ToList();
var result = ListOfItemsToControl.Where(x => names.Contains(x.sItemName)).ToList();
var resultList = ListOfItemsToControl.Except(result);

这似乎奇数但它应该有效:)

答案 1 :(得分:1)

这是一个LINQ单线程。我没有测试过这个,但它应该可以工作:

ListOfItemsToControl = ListOfItemsToControl.Where(l => !lstRemoveItems.Any(r => r.sItemName == l.sItemName)).ToList();