如何解决使用Linq
我试图弄清楚如何使用linq动态分组。我找到了很多解决方案,但找不到适合我的解决方案,因为大多数解决方案都使用不同的列名,但没有更改列数。我必须使用可变数量的列和可变列。我从用户进行的设置中获得了列表中的列名。
一个例子: 用户想这样第一次分组。
var grouping = aList.GroupBy(x => new { x.Year,x.Month,x.Day });
但是也许第二天他想像这样分组。
var grouping = aList.GroupBy(x => new { x.Hour,x.Minute,x.Second,x.Year});
或者只是这个。
var grouping = aList.GroupBy(x => new { x.Hour});
该怎么做?
编辑: 我想我找到了解决方案。如果我的列表表示“年份”,则将布尔值设置为true。依此类推。
bool includeYear = true;
bool includeMonth = true;
bool includeDay = false;
bool includeHour = true;
bool includeSecond = false;
var grouping = aList.GroupBy(g => new {
Year = includeYear ? g.Year :(int?)null,Month = includeMonth ? g.Month: null,Day = includeDay ? g.Day :(int?)null,Hour = includeHour ? g.Hour : null,Second= includeSecond ? g.Second : null});
现在可以使用布尔值打开和关闭列。我仍在测试中,但我不知道列的顺序如何,是否有所不同?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。