我有2列DataTable:Id(长),日期(DataTime)。 如何组此获得分组列表中的LINQ:如何按年份和月份分组?
2017.08.03
345675
877685
2017.08.04
988798
898967
675675
接下来,我必须给每个组发送到存储过程作为一个参数。 我可以在数据表有大约300000行,所以linq扩展应该很快。
好的。现在,我想为每个组织做些事情。我该怎么做?
var GroupedbyDates = dataTable.AsEnumerable().GroupBy(x => ((DateTime)x["Date"]).Date);
for (var i = 0; i < threadCount; i++)
{
Task task = Task.Factory.StartNew(DoSomething);
tasks.Add(task);
}
private DoSomething()
{
while (true)
{
var item = ?? //one of groups;
if (item != null)
{
var result = DoSomething2();
HandleResult(result);
}
}
}
如何迭代IGrouped?
UPDATE
我有这样的事情:
var r = dataTable.AsEnumerable()
.GroupBy(x => ((DateTime)x["Date"]).Year)
.ToDictionary(year => year.Key, g => g.GroupBy(x =>
((DateTime)x["Date"]).Month)
.ToDictionary(month => month.Key, d => d
.Select(t => new { Root_Id = t["Id"] })));
到:
2017.08.03
345675
877685
2017.08.04
988798
898967
675675
任何去除一部分时间和项目组获得团体的例子努力从你身边实现这一目标? –