我想创建一个简单的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查询?
感谢。
答案 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