【问题标题】:How to perform group by operation in dataTable using multiple columns dynamically in c#?如何在c#中动态使用多列在dataTable中执行分组操作?
【发布时间】:2023-03-04 09:39:01
【问题描述】:

我需要使用 linq 动态地对列进行分组,即用户将在运行时选择表和列。

例如:上表有Territory,

州、银行名称、

假设用户已选择这些列进行分组(地区、银行名称)

如何使用 linq 来做到这一点?

【问题讨论】:

标签: c# linq


【解决方案1】:

您可能想使用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
    }  
}

查看此帖子Split a Datatable into multiple Datatables based on a list of column names

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    相关资源
    最近更新 更多