C#SQL Linq获取所有重复项

时间:2013-04-18 20:54:22

标签: mysql linq c#-4.0

请告诉我如何解决问题。

我必须序列(numbersA和numberB)。在输出中,我只需要第二个序列中可用的元素(numbersB)。

int [] numbersA = {0,2,4,4,6,8,9}; int [] numbersB = {2,4};

numberA - numberB = 2,4,4

除了()或Intersect()不起作用。

2 个答案:

答案 0 :(得分:1)

听起来你想要这样的东西:

var result = numbersA.Where(x => numbersB.Contains(x));

如果numbersB非常小,那没关系,但随着它变大,你可能想要改为:

var numbersBSet = new HashSet<int>(numbersB);
var result = numbersA.Where(x => numbersBSet.Contains(x));

答案 1 :(得分:0)

从第二个列表创建一个HashSet,以便快速查找,然后执行:

int[] numbersA = { 0, 2, 4, 4, 6, 8, 9 }; 
int[] numbersB = { 2, 4 };
var set = new HashSet<int>(numbersB);
var finalList = numbersA.Where(n => set.Contains(n));