linq查询与计数

时间:2014-08-03 08:02:39

标签: linq count group-by

我想创建一个简单的linq查询,但我真的不知道它应该如何。我在网上搜索过,但没有发现任何东西,我可以使用或者我还不知道,我可以使用它。

所以,基本上,我有一个包含这些字段的表:reference,vat_code,amount,vat_amount,supplier。

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

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

2;VF;200;54;123
2;VF;-200,-54;123
2;VF;200;54;123

如何查看linq查询?

感谢。

1 个答案:

答案 0 :(得分:1)

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

带有DataTable的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