Linq 查找所有元素的公共值
我有一个包含两列的数据集,如下所示Linq 查找所有元素的公共值,linq,set,Linq,Set,我有一个包含两列的数据集,如下所示 Prod Value A 1 A 2 A 3 B 2 B 4 C 1 C 2 因此,我希望所有行的值都是Prod的公共值,因此在上面的示例中,只返回以下内容 A 2 B 2 C 2 LINQ或sql都会有所帮助 谢谢 这是一个基于SQL Server的解决方案:。您可以在数据集的第二列上使用Intersect运算符 int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 }; i
Prod Value
A 1
A 2
A 3
B 2
B 4
C 1
C 2
因此,我希望所有行的值都是Prod的公共值,因此在上面的示例中,只返回以下内容
A 2
B 2
C 2
LINQ或sql都会有所帮助
谢谢
这是一个基于SQL Server的解决方案:。您可以在数据集的第二列上使用Intersect运算符
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var commonNumbers = numbersA.Intersect(numbersB);
这是我的想法,我认为有一个更简单的方法,但是
var prodList = (from col in list select col["Prod"]).Distinct().ToList();
var valueList = from col in list
group col by col["Value"] into g
where g.Count() == prodList.Count()
select g.Key;
这将为我提供我要查找的所有值感谢您的回复,您建议按产品分组并使用intersect查找匹配值?
var prodList = (from col in list select col["Prod"]).Distinct().ToList();
var valueList = from col in list
group col by col["Value"] into g
where g.Count() == prodList.Count()
select g.Key;