わかったと思いIntersect
ましたが、間違っていたことがわかりました。
List<int> list1 = new List<int>() { 1, 2, 3, 2, 3};
List<int> list2 = new List<int>() { 2, 3, 4, 3, 4};
list1.Intersect(list2) => 2,3
//But what I want is:
// => 2,3,2,3,2,3,3
私は次のような方法を理解することができます:
var intersected = list1.Intersect(list2);
var list3 = new List<int>();
list3.AddRange(list1.Where(I => intersected.Contains(I)));
list3.AddRange(list2.Where(I => intersected.Contains(I)));
これを実現するためのLINQの簡単な方法はありますか?
結果がどの順序で表示されるかは気にしないことを述べる必要があります。
2,2,2,3,3,3,3も完全にOKです。
問題は、これを非常に大きなコレクションで使用していることです。そのため、効率が必要です。
私たちは、intではなくObjectsについて話している。intは簡単な例ですが、これが違いを生む可能性があることを私は理解しています。