我有一个select列查询结果在column1和column2中有重复值,而column3和column4值对于给定的column1和column2值有所不同。
我的选择查询结果如下
ab ab_ds a 4
ab ab_ds b 6
bc bc_ds d 8
bc bc_ds a 8
如何获得如下的网页?
ab ab_ds a 4 b 6
bc bc_ds d 8 a 8
请建议我是否可以在查询或webgrid中执行某些操作
答案 0 :(得分:1)
如果使用linq,则可以使用GroupBy()方法。
基于比较值为字符串
的类的示例 IEnumerable<IGrouping<string, ColumnClass>> groupBy = list.GroupBy(
y => y.Column1 + " " + y.Column2);
这会给你一个IEnumerable&lt; IGrouping&LT; string,YourClass&gt; &GT;然后你可以使用另一个linq查询:
groupBy.Select(item => item.Aggregate(
item.Key, (current, columnClass) => current + (
" " + columnClass.Column3 + " " + columnClass.Column4))).ToList();
答案 1 :(得分:0)
这个问题是一般性的,所以我会给出一个可以帮助你的一般性答案。
我使用的是具有MultiHashDictionary
的C5通用集合库,这是一个通用集合,您可以在那里加载结果并按照您说的方式获取它们。
MultiHashDictionary<K, V>
与Dictionary<k,v>
类似,但密钥不是唯一的,您可以将其分组。它可以帮助我获得像你这样的结果。