3

2 つのリストがあり、2 つのリストの互いに素な和集合であるリストを取得したいと考えています。つまり、どちらかのリストに含まれていて、両方には含まれていないすべての項目です。

この投稿には、私のものとほぼ同じクエリがありますが、Disjoint Union: Disjoint Union in LINQによって少し異なる意味を持っています。

このコード スニペットの何が問題になっていますか?

var list1 = new List<int>(){1, 2, 3}
var list2 = new List<int>(){2, 3, 4}
var intersection = list1.Intersect(list2);
list1.AddRange(list2);
list1.RemoveRange(intersection);

型変換の問題が発生しています

4

2 に答える 2

0

RemoveRange はオブジェクトのリストを削除しません (AddRange がオブジェクトを追加するように)。定義された開始インデックスから始まる指定された数のオブジェクトを削除します。

代わりにこれを試してください:

foreach (var item in intersection) { list1.Remove(item) }
于 2015-05-19T21:11:21.517 に答える