Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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/9/csharp-4.0/2.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
如何使用linq对数据表排序_Linq_C# 4.0_Datatable - Fatal编程技术网

如何使用linq对数据表排序

如何使用linq对数据表排序,linq,c#-4.0,datatable,Linq,C# 4.0,Datatable,我有一个数据表,如下所示: |ItemName | ItemPro A HWH A BRB A EAH B HWH B BRB B EAH B HWH C BRB C EAH A HWH B BRB c EAH A H

我有一个
数据表
,如下所示:

|ItemName | ItemPro

 A         HWH  
 A         BRB  
 A         EAH  
 B         HWH  
 B         BRB  
 B         EAH  
 B         HWH  
 C         BRB  
 C         EAH 
 A         HWH  
 B         BRB  
 c         EAH  
 A         HWH  
 B         BRB  
 C         EAH  
 A         HWH  
 B         BRB  
 B         EAH 
我想按
ItemName
对上面的
DataTable
进行分组,并对这些组进行排序

我怎样才能做到这一点

注意:排序后,我希望我的表如下所示

|ItemName | ItemPro

 A         HWH  
 A         BRB  
 A         EAH  
 B         HWH  
 B         BRB  
 B         EAH  
 B         HWH  
 C         BRB  
 C         EAH 
 A         HWH  
 B         BRB  
 c         EAH  
 A         HWH  
 B         BRB  
 C         EAH  
 A         HWH  
 B         BRB  
 B         EAH 

您不必按
ItemName
对值进行分组,而是可以对
ItemName
应用排序,如:

var sortedQuery = dt.AsEnumerable()
                    .OrderBy(r=> r.Field<string>("ItemName"));
var sortedQuery = dt.AsEnumerable()
        .OrderBy(r => r.Field<string>("ItemName"))
        .ThenBy(r => r.Field<string>("ItemPro"));                     
如果希望生成新的
数据表
,则:

DataTable sortedDt = dt.AsEnumerable()
                        .OrderBy(r => r.Field<string>("ItemName"))
                        .ThenBy(r => r.Field<string>("ItemPro"))
                        .CopyToDataTable();
DataTable sortedddt=dt.AsEnumerable()
.OrderBy(r=>r.Field(“ItemName”))
.ThenBy(r=>r.Field(“ItemPro”))
.CopyToDataTable();

var listOfStrings=新列表{ “橙色”, “橙色”, “橙色”, “橙色”, “芒果”, “芒果”, “芒果”, “芒果”, “芒果”, “芒果”, “苹果”, “苹果”, “苹果” };

var groupedStrings=listOfStrings.GroupBy(i=>i)
.Select(i=>new{i.Key,Items=i.ToList()}).ToList();
var maxGroupSize=groupedStrings.OrderByDescending(i=>i.Items.Count).First()
.项目数;
var finalList=新列表();
对于(变量i=0;i
请查看我更新的问题并回复。谢谢你Advance@user3752669,您不需要分组依据,您可以对第二个字段使用
OrderBy
ThenBy
。您已经对数据表进行了排序,并且想要取消对其排序?woww,。那个鬼编辑只是使问题与以前完全相反。@Habib我认为这是错误的(否则就没有意义了)