Linq datatable获取唯一行及其计数
我有如下数据表: 国家 中国 印度 泰国 印度 中国 中国 泰国 香港 印度 可以使用LINQ获得如下所示的输出 国家统计 印度3 中国2 泰国2Linq datatable获取唯一行及其计数,linq,datatable,Linq,Datatable,我有如下数据表: 国家 中国 印度 泰国 印度 中国 中国 泰国 香港 印度 可以使用LINQ获得如下所示的输出 国家统计 印度3 中国2 泰国2 香港1 < P>正如Ben Allred指出的,你可能要找的是LINQ GROPIB/方法。 使用查询语法,它可能看起来像这样: var query = from tuple in table group tuple by tuple.Country into g selec
香港1 < P>正如Ben Allred指出的,你可能要找的是LINQ <代码> GROPIB/<代码>方法。 使用查询语法,它可能看起来像这样:
var query = from tuple in table
group tuple by tuple.Country into g
select new { Country = g.Key, Count = g.Count() };
query
现在包含一个IEnumerable匿名对象集合,其成员为字符串Country
和整数Count
,表示该国家/地区在表中的出现次数
当然,您现在可以迭代这些对象,如下所示:
foreach (var item in query)
{
Console.WriteLine("Country : {0} - Count : {1}", item.Country, item.Count);
}
关于更多的例子,我强烈建议
还值得指出的是,如果您之前没有使用LINQ,那么处理将被延迟,这意味着在您尝试访问其任何项(例如,
foreach
语句)之前,query
对象上的迭代不会发生。如果从表
中进行的收集或读取非常昂贵,并且您打算多次使用查询结果,则可以在query
上调用ToList()
,以返回更具体的收集。您看过LINQ的GroupBy
扩展方法吗?如果你尝试了,遇到了麻烦,把你尝试过的贴出来,我们可以帮你。