【发布时间】:2014-02-20 12:45:28
【问题描述】:
您好,我的 asp.net 应用程序有问题。
我有一个数据表,我想用 linq 过滤这个表到数据表。
我的 DataTable 有这样的结构:
用户 |许可证 |部门 |时间 |电话号码 |位置
我想要一个在部门中没有重复条目的新数据表。例如:
这是基本数据表中的三行
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();
认为问题在于我的 DataTable 中的每一行都来自 Typ 字符串还是不是那么重要?
【问题讨论】:
-
您需要在查询中按部门对其进行分组。 CopyToDataTable() 是正确的,因为它会根据过滤后的值创建新的 DataTable。如果我正确理解您的问题,请发表评论。
标签: c# asp.net linq listview datatable