How to sort DataTable by two columns in c#

匿名 (未验证) 提交于 2019-12-03 02:20:02

问题:

I have a DataTable that looks like below;

|              ID                    | ItemIndex |   ItemValue ce895bd9-9a92-44bd-8d79-986f991154a9     1            3 ae7d714e-a457-41a8-8bb4-b5a0471c3d2f     2            2 a774dff3-acc0-4f50-a211-a775e28dcae3     2            1 292bbd50-290b-4511-9e4e-2e74e3ebe273     3            2 ae7d714e-a457-41a8-8bb3-b5a0471c3d22     3            1 

I want to sort this table by ItemIndex first, then sort the sorted table by ItemValue.

How can I achieve this?

Edit: after sorting, I want my table like below;

|              ID                    | ItemIndex |   ItemValue ce895bd9-9a92-44bd-8d79-986f991154a9     1            3 a774dff3-acc0-4f50-a211-a775e28dcae3     2            1 ae7d714e-a457-41a8-8bb4-b5a0471c3d2f     2            2 ae7d714e-a457-41a8-8bb3-b5a0471c3d22     3            1 292bbd50-290b-4511-9e4e-2e74e3ebe273     3            2 

回答1:

You can use LINQ to DataSet/DataTable

var newDataTable = yourtable.AsEnumerable()                    .OrderBy(r=> r.Field<int>("ItemIndex"))                    .ThenBy(r=> r.Field<int>("ItemValue"))                      .CopyToDataTable(); 


回答2:

Create a DataView and use the Sort Property:

DataView dv = new DataView(dt); dv.Sort = "ItemIndex, ItemValue"; 

e.g.

foreach (DataRowView row in dv) {    Console.WriteLine(" {0} \t {1}", row["ItemIndex"], row["ItemValue"]); } 

For more information, check out MDSN for a more thorough example:

http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx



回答3:

On the datatable object, just get the defaultview object and set the sort.

dataTable.DefaultView.Sort = "ItemIndex, ItemValue"; 


回答4:

By creating dataview

var dataView = new DataView(dataTable); dataView.Sort = "ItemIndex ASC, ItemValue ASC" 

Here dataTable is table you want to sort



回答5:

_UserAuditTrailTable.DefaultView.Sort = sortExpression; 


回答6:

Alternatively you can use that

DataView oDataSet; oDataSet.Tables[0].DefaultView.Sort = "Column1 ASC "; 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!