C# 如何合并数据表的重复行(基于列)&;把它放在单独的数据表中?
我有一个数据表,它返回如下结果: 我想做的是根据列:cfg和各自的计数对它们进行分组 所需的输出应如下所示: 我尝试使用以下LINQ语法来完成此操作:C# 如何合并数据表的重复行(基于列)&;把它放在单独的数据表中?,c#,asp.net,linq,datatable,C#,Asp.net,Linq,Datatable,我有一个数据表,它返回如下结果: 我想做的是根据列:cfg和各自的计数对它们进行分组 所需的输出应如下所示: 我尝试使用以下LINQ语法来完成此操作: DataTable objDataTable = DLService.GetData(); var distinctTable = from row in objDataTable.AsEnumerable() group row by row.Field<string&
DataTable objDataTable = DLService.GetData();
var distinctTable = from row in objDataTable.AsEnumerable()
group row by row.Field<string>("cfg") into newProps
orderby newProps.Key
select new
{
PropName = newProps.Key,
CountOfProps = newProps.Count()
};
DataTable objDataTable=DLService.GetData();
var distinctTable=来自objDataTable.AsEnumerable()中的行
将row.Field(“cfg”)按行分组到newProps中
orderby newProps.Key
选择新的
{
PropName=newProps.Key,
CountOfProps=newProps.Count()
};
我可以用这个按cfg分组,但不能根据cfg得到计数(总和)。
因为“公寓”有4个条目,所以我得到的是:4个公寓(返回条目的计数)。它应该返回:74号公寓
有人能提供解决方案来完成这项工作吗?语法或其他方法有什么改进吗
请注意,我不想使用sql查询进行分组。请尝试以下操作:
var distinctTable = objDataTable.AsEnumerable()
.GroupBy(x => row.Field<string>("cfg"))
.OrderBy(x => x.Key)
.Select( x => new { PropName = x.Key, CountofProps = x.Count}).ToList();
var distinctTable=objdataable.AsEnumerable()
.GroupBy(x=>row.Field(“cfg”))
.OrderBy(x=>x.Key)
.Select(x=>new{PropName=x.Key,CountofProps=x.Count}).ToList();
在案例组中,by返回一个IEnumerable
。您需要汇总分组中的所有值:
Dictionary<string, int> counts = dt.AsEnumerable()
.GroupBy(x => x["cfg"])
.OrderBy(x => x.Key)
.ToDictionary(
x => (string) x.Key,
x => x.Select(row => (int) row["count"]).Sum()
);
Dictionary counts=dt.AsEnumerable()
.GroupBy(x=>x[“cfg”])
.OrderBy(x=>x.Key)
.ToDictionary(
x=>(字符串)x.键,
x=>x.Select(row=>(int)row[“count”]).Sum()
);
显示错误“查询必须以select子句或group子句结束”我刚刚修复了错误。我错误地从你的询问中抄了太多。