C# 如何使用Linq在ASP.NET中筛选数据表并创建新的数据表?

C# 如何使用Linq在ASP.NET中筛选数据表并创建新的数据表?,c#,asp.net,linq,listview,datatable,C#,Asp.net,Linq,Listview,Datatable,您好,我的asp.net应用程序有问题 我有一个DataTable,我想用linq to DataTable筛选这个表 我的数据表具有以下结构: 用户|许可证|部门|时间|电话号码|位置 我想要一个新的datatable,在department中没有重复的条目。例如: 这是基本数据表中的三行 userA | 1 | IT | 4min | 0123/123 | germany userB | 1 | Marketing | 3min | 0232/232 | germany u

您好,我的asp.net应用程序有问题

我有一个DataTable,我想用linq to DataTable筛选这个表

我的数据表具有以下结构:

用户|许可证|部门|时间|电话号码|位置

我想要一个新的datatable,在department中没有重复的条目。例如:

这是基本数据表中的三行

userA | 1 | IT        | 4min | 0123/123 | germany 
userB | 1 | Marketing | 3min | 0232/232 | germany 
userC | 1 | IT        | 1min | 0233/233 | germany 
这是我想要的:

部门执照

It         | 2 
Marketing  | 1 
这意味着必须计算使用许可证持有人

这是我的密码:

更新:

 var query = from row in catia_user_table.AsEnumerable()
                            group row by row.Field<string>("Department") into grp
                            orderby grp.Key
                            select new
                            {
                                Department = grp.Key,
                                Licenses = grp.Sum(r => r.Field<int>("Licenses"))

                            };

                    DataTable tb = query.CopyToDataTable();
var query=来自catia_user_表中的行。AsEnumerable()
按行将字段(“部门”)分组到grp中
orderby grp.Key
选择新的
{
部门=组键,
许可证=grp.Sum(r=>r.Field(“许可证”))
};
DataTable tb=query.CopyToDataTable();

我认为问题在于我的数据表中的每一行都来自于类型字符串,或者这不是很重要

就像@Krishnaj Rana所说的,您只需要按部门分组,然后使用
Sum
操作符计算每个部门的总许可证数量。见下文:

var query = catia_user_table.AsEnumerable().GroupBy(n => n.Department)
                            .Select(g => new
                             {
                                Department = g.Key,
                                Licenses = g.Sum(n => n.Licensec)
                             }).ToList();

您需要在查询中按部门对其进行分组。CopyToDataTable()是正确的,因为它将基于筛选的值创建新的DataTable。如果我正确理解您的问题,请发表评论。System.Data.DataTable不包含“GroupBy”的定义,并且找不到带有“GroupBy”的ExtensionMethod,其参数来自Typ“System.Data.DataTable”accept。(使用direkctive或Assemblyreference)hi@Tarasov,尝试在
GroupBy
之前添加
AsEnumerable