我有一张大型数据表格(50万-100万行),不详细说明,这是因为最终用户需要/希望能够查看所有数据。这在本地服务器上,所以带宽等对我来说不是问题。
DataTable中有一个DateTime字段,我需要对其进行分组,让我解释一下我的意思...这可能与您从其他问题上看到的不同。
我希望上述表格能够分组,以便我获得“ValueOne”列的总和和“ValueTwo”列的平均值。我需要分组有一定的灵活性,以便我可以指定按分钟(只有第一行和最后一行会被分组,其余行仅提供它们的值)或按天(除了最后一行外,所有行都会被分组成一行),等等。
我尝试过几次,但没有成功。我的LINQ知识不是很好,但我认为我应该能够完成这个任务!
请注意:DataTable已经在计算机上进行了计算/视图,无法更改,因此说“停止愚蠢的想法,使用SQL过滤器!”也是一个有效的答案,但对我来说毫无用处! :-D
另外,请注意,如果您在标题中错过了它,我需要使用C# - 我正在使用.NET 4.0...
提前感谢,假设您决定帮助我! :-)
DataTable中有一个DateTime字段,我需要对其进行分组,让我解释一下我的意思...这可能与您从其他问题上看到的不同。
var table = new DataTable();
table.Columns.Add("EventTime", typeof(DateTime));
table.Columns.Add("Result", typeof(String));
table.Columns.Add("ValueOne", typeof(Int32));
table.Columns.Add("ValueTwo", typeof(Int32));
table.Rows.Add("2012-02-06 12:41:45.190", "A", "7", "0");
table.Rows.Add("2012-02-06 12:45:41.190", "B", "3", "89");
table.Rows.Add("2012-02-06 12:59:41.190", "C", "1", "0");
table.Rows.Add("2012-02-06 13:41:41.190", "D", "0", "28");
table.Rows.Add("2012-02-06 17:41:41.190", "E", "0", "37");
table.Rows.Add("2012-02-07 12:41:45.190", "F", "48", "23");
我希望上述表格能够分组,以便我获得“ValueOne”列的总和和“ValueTwo”列的平均值。我需要分组有一定的灵活性,以便我可以指定按分钟(只有第一行和最后一行会被分组,其余行仅提供它们的值)或按天(除了最后一行外,所有行都会被分组成一行),等等。
我尝试过几次,但没有成功。我的LINQ知识不是很好,但我认为我应该能够完成这个任务!
请注意:DataTable已经在计算机上进行了计算/视图,无法更改,因此说“停止愚蠢的想法,使用SQL过滤器!”也是一个有效的答案,但对我来说毫无用处! :-D
另外,请注意,如果您在标题中错过了它,我需要使用C# - 我正在使用.NET 4.0...
提前感谢,假设您决定帮助我! :-)
row.Field<DateTime>("EventTime")
是一种扭曲或索引?(更不用说是一个类型化的 DataSet 了) - Tim Schmelterrow.Field<DateTime>("EventTime")
感觉要做很多无用功,相比之下event.EventTime
简单明了。它需要进行转换和使用 "magic string" 字符串值。它是索引器,因为我正在请求行中指定"EventTime"
索引处的值,而且它不是类型安全的,因为如果您更改了 "EventTime" 字段的类型,编译器不会报错。我不清楚类型化数据集与此有何关系,但我愿意接受启示。 - StriplingWarrior