1

我这里有一个问题。我是一个新手,所以请原谅我的术语,我正在查询一个数据表,我需要根据日期及其唯一访问代码对这个数据表进行分组。

var tMainTable = (from System.Data.DataRow b in _tData.data_table.Rows
group b by b["ACCESS_CODE"] into bGroup
select new
{ bGroup });

在我上面的当前分组中,我根据访问代码对我的数据表进行分组。我的数据表由 3 个字段组成:DATE、ACCESS_CODE、COUNT。前提是我无法制作我的数据表AsEnumerable()类型。

所以这一次,我想添加它的条件,也就是按日期分组......有没有这样的东西:

var tMainTable = (from System.Data.DataRow b in _tData.data_table.Rows
**group b by b["ACCESS_CODE"] AND b["DATE"] into bGroup**
select new
{ bGroup });

感谢您的任何意见。

4

3 回答 3

2

使用匿名类型进行分组:

var codeDateGroups = _tData.data_table.AsEnumerable()
    .GroupBy(r => new { 
        AccessCode = r.Field<string>("ACCESS_CODE"), 
        Date = r.Field<DateTime>("DATE") 
    });

您可以通过以下方式访问它Key

foreach(var group in codeDateGroups)
    Console.WriteLine("Code=[{0}] Date=[{1}]" 
        , group.Key.AccessCode
        , group.Key.Date);
于 2013-05-24T08:34:08.513 回答
1
var tMainTable = (from System.Data.DataRow b in _tData.data_table.Rows
group b by new { AccessCode = b["ACCESS_CODE"], Date = b["DATE"] } into bGroup
select new
{ bGroup });
于 2013-05-24T08:30:00.813 回答
1
var groups =  _tData.data_table.AsEnumerable()
.GroupBy(row=> new {row["ACCESS_CODE"],row["DATE"] });
于 2013-05-24T08:36:47.307 回答