我在C#中有两个对象列表。一个大,一个小。为了便于说明,我们说它们看起来有点像......
List A List B
Cat Mouse
Dog Cat
Mouse Dog
Cow
Dog
Cat
Dog
我想从列表A中删除列表B中的值,但每次出现只删除一次。
因此,由于'Cat'和'Dog'不止一次出现在List A中,删除后,仍有一个'Cat'条目和两个'Dog'条目仍然在List A中。
这有意义吗?有没有一种简单的方法来实现这一目标?
答案 0 :(得分:1)
foreach(var listBItem in listB)
{
var index = listA.IndexOf(listBItem);
if (index > -1) listA.RemoveAt(index);
}
或更短的
listB.ForEach(i => listA.Remove(i));
答案 1 :(得分:1)
foreach(var item in ListB)
{
ListA.Remove(item);
}