我有两个名为List1&的列表列表2。
现在说List1& List2有5个元素{a,b,c,d,e}。现在,如果我从List1中删除{b,c}并将{f,g,h}添加到List1,我如何使List2相等(通过对其执行添加和删除操作。)。
答案 0 :(得分:2)
“(通过对其进行添加和删除操作。)”
为什么会出现这种限制? 最简单,最可靠,也可能是最快的方式:
List2 = List1.ToList();
但如果你真的想要它:
List2.RemoveRange(List2.Except(List1)); // You may have to write RemoveRange()
List2.AddRange(List1.Except(List2));
答案 1 :(得分:1)
让List2只是List1的引用,例如:
List<string> list1 = new List<string>();
List<string> list2 = list1;
修改list1也会影响list2
答案 2 :(得分:0)
@Henk Holterman建议正确的方法(在答案的第一部分),但如果你想要你在OP中提到的那么你可以使用这个
list2.RemoveAll(l => !list1.Contains(l));
list2.AddRange(list1.Except(list2));