我需要使用 linq 动态地对列进行分组,即用户将在运行时选择表和列。
例如:上表有领土,
州,银行名称,
假设用户已选择这些列进行分组(地区、银行名称)
如何使用 linq 来做到这一点?
你可能想使用System.Linq.Dynamic
var fields = new List<string>() { "Territory", "Bank Name"};
var qfields = string.Join(", ", fields.Select(x => "it[\"" + x + "\"] as " + x));
var q = dt
.AsEnumerable()
.AsQueryable()
.GroupBy("new(" + qfields + ")", "it")
.Select("new (it as Data)");
foreach (dynamic d in q)
{
foreach (var row in d.Data)
{
// Do your work here, using d.Territory
}
}
检查这篇文章根据列名列表将数据表拆分为多个数据表