1

我有两个名为 List1 和 List2 的列表。

现在说 List1 & List2 有 5 个元素 {a,b,c,d,e}。现在,如果我从 List1 中删除 {b,c} 并将 {f,g,h} 添加到 List1,我怎样才能使 List2 相等(通过对其执行添加和删除操作。)。

4

3 回答 3

2

“(通过对其进行添加和删除操作。)”

为什么会有这个约束?
最简单、最可靠且可能最快的方法:

List2 = List1.ToList();

但如果你真的想要它:

List2.RemoveRange(List2.Except(List1));  // You may have to write RemoveRange()
List2.AddRange(List1.Except(List2));
于 2013-10-19T08:18:14.473 回答
1

让 List2 只是 List1 的一个引用,例如:

List<string> list1 = new List<string>();
List<string> list2 = list1;

修改 list1 也会影响 list2

于 2013-10-19T08:17:40.167 回答
0

@Henk Holterman 提出了正确的方法(在答案的第一部分),但如果你想要你在 OP 中提到的内容,那么你可以使用它

list2.RemoveAll(l => !list1.Contains(l));
list2.AddRange(list1.Except(list2));
于 2013-10-19T08:30:37.820 回答