如何在c#中动态地使用多列执行groupTable操作?

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

在此处输入图像描述

例:上表有领土,

州,BankName,

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

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

您可能想要使用System.Linq.Dynamic

 var fields = new List() { "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 } } 

查看此文章根据列名列表将数据表拆分为多个数据表