Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带计数的linq查询_Linq_Count_Group By - Fatal编程技术网

带计数的linq查询

带计数的linq查询,linq,count,group-by,Linq,Count,Group By,我想创建一个简单的linq查询,但我真的不知道该如何创建。我已经搜索了网络,但没有找到任何东西,我能用的东西,或者我还不知道我能用的东西 所以,基本上,我有一个包含以下字段的表:引用、增值税代码、金额、增值税金额、供应商 现在,我想查询记录,其中引用“”和引用在表中不止一次。但我需要所有的占领者 F.e.来自 1;VF;100;27;345 2;VF;200;54;123 2;VF;-200;-54;123 2;VF;200;54;123 3;VF;300;81;888 到 linq查询对此有

我想创建一个简单的linq查询,但我真的不知道该如何创建。我已经搜索了网络,但没有找到任何东西,我能用的东西,或者我还不知道我能用的东西

所以,基本上,我有一个包含以下字段的表:引用、增值税代码、金额、增值税金额、供应商

现在,我想查询记录,其中引用“”和引用在表中不止一次。但我需要所有的占领者

F.e.来自

1;VF;100;27;345
2;VF;200;54;123
2;VF;-200;-54;123
2;VF;200;54;123
3;VF;300;81;888

linq查询对此有何看法


谢谢。

如果具有相同引用的行在结果中放在一起,那么您应该筛选出引用等于空字符串的行,然后按引用对所有行进行分组,并仅选择具有多行的组

C#带有数据表的样本:

var result = dt.AsEnumerable()
               .Where(r => r.Field<string>("reference") != "")
               .GroupBy(r => r.Field<string>("reference"))
               .Where(g => g.Count() > 1)
               .SelectMany(g => g); // flatten group to sequence of rows
var result=dt.AsEnumerable()
.其中(r=>r.字段(“参考”)!=“”)
.GroupBy(r=>r.Field(“参考”))
.Where(g=>g.Count()>1)
.选择many(g=>g);//将组展平到行序列

记录的顺序重要吗?表是什么意思?是数据库表还是数据表对象?如果在引用2的行之间有另一行引用3,该怎么办?在这种情况下,预期的结果是什么?带参考3的行是否应该在结果中放在一起?
var result = dt.AsEnumerable()
               .Where(r => r.Field<string>("reference") != "")
               .GroupBy(r => r.Field<string>("reference"))
               .Where(g => g.Count() > 1)
               .SelectMany(g => g); // flatten group to sequence of rows