生成具有两个通用列表的交集和分解列表

Nur*_*MAZ 2 c# linq

假设我们有两个List<int>

List<int> list1 = new List<int> { 1, 3, 5, 7 , 9, 11, 18 };
List<int> list2 = new List<int> { 2, 3, 5, 7 , 9, 10, 20, 26, 36 };
Run Code Online (Sandbox Code Playgroud)

问我怎么能产生;

intersect  {3, 5, 7, 9 }
list1Decomp  { 1, 11, 18 }
list2Decomp  { 2, 10, 20, 26, 36 }
Run Code Online (Sandbox Code Playgroud)

提前致谢.

jas*_*son 6

var intersection = list1.Intersect(list2).ToList();
var list1Decomp = list1.Except(intersection).ToList();
var list2Decomp = list2.Except(intersection).ToList();
Run Code Online (Sandbox Code Playgroud)