从DataTable中找到独特的东西

时间:2013-07-24 11:12:28

标签: c# linq datatable distinct

我有一个DataTable,在该表中我有2列Task_Name和Hours。

Task_Name   Hours
-----------------
Proj1        2
Proj2        3
Proj1        3
Proj1        2
Proj2        5

现在我最终想要的是一个DataTable,它将导致: -

Task_Name    Hours
------------------
Proj1         7(addition of hours related to Proj1) 
Proj2         8(addition of hours related to Proj2)

我希望我的问题清楚...... 我怎么能这样做.. ??

1 个答案:

答案 0 :(得分:2)

您可以使用LINQ to DataSet。计算任务的汇总小时数:

var query = from r in table.AsEnumerable()
            group r by r.Field<string>("Task_Name") into g
            select new {
               Task_Name = g.Key,
               Hours = g.Sum(x => x.Field<int>("Hours"))
            };

并使用此CopyToDataTable()扩展名从匿名类型创建新的DataTable(如果您确实需要DataTable):

var result = query.CopyToDataTable();