相关疑难解决方法(0)

查找所有相交数据,而不仅仅是唯一值

我以为我明白了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
Run Code Online (Sandbox Code Playgroud)

我可以想办法:

 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)));
Run Code Online (Sandbox Code Playgroud)

在LINQ中有更简单的方法来实现这一目标吗?

我需要说明我不关心结果的顺序.

2,2,2,3,3,3,3也可以.

问题是我在一个非常大的集合中使用它,所以我需要效率.

我们谈论的是对象,而不是整体.这些仅仅是为了简单的例子,但我意识到这可以有所作为.

c# linq intersection

12
推荐指数
1
解决办法
9245
查看次数

标签 统计

c# ×1

intersection ×1

linq ×1