Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何合并数据表的重复行(基于列)&;把它放在单独的数据表中?_C#_Asp.net_Linq_Datatable - Fatal编程技术网

C# 如何合并数据表的重复行(基于列)&;把它放在单独的数据表中?

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&

我有一个数据表,它返回如下结果:

我想做的是根据列:cfg和各自的计数对它们进行分组

所需的输出应如下所示:

我尝试使用以下LINQ语法来完成此操作:

    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子句结束”我刚刚修复了错误。我错误地从你的询问中抄了太多。