我正在使用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);
}
答案 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() });