选择相关对LINQ

时间:2011-11-29 14:02:11

标签: linq select datatable

我正在使用LINQ来操作数据表。我有3列 - 我想逐个分组,然后一起选择剩余的2列。目前我有类似的东西

var query = reportDataTable.AsEnumerable()
            .GroupBy(c => c["Code"])
            .Select(g => 
                   new { 
                    Code = g.Key, 
                    Rank = g.Select(f => new 
                                       { f["rank"], 
                                         f["Name"]}).ToArray() 
                   });

但由于匿名类型,我遇到了问题。我知道如果我可以直接引用列标题(比如列表或w / e),这种语法就可以了。我如何使用DataTables解决这个问题?欢呼声。

编辑:

我希望以后能够在将数据填充到不同的数据表中时引用这些字段:

            foreach (var q in query)
        {
            DataRow df = dp.NewRow();
            df["Code"] = q.Code;

            foreach (var rank in q.Rank)
            {
               df[rank.name] = rank.rank;
            }
            dp.Rows.Add(df);
        }

1 个答案:

答案 0 :(得分:0)

定义你的Rank字段,如果你有一个类,调用相关的类构造函数, 你可以在ToArray之前的下面的代码中看到这个。

var query = reportDataTable.AsEnumerable()
            .GroupBy(c => c["Code"])
            .Select(g => 
              new { Code = g.Key, Rank = 
                     g.Select(f => new { rank = f["rank"], name = f["Name"]})
              .ToArray() });