如何在linq中使用OrderBy for asp.net中的DataTable

时间:2014-07-14 12:53:44

标签: c# asp.net linq

我有两个数据表Folder_table和folder_filter。这两个表都有两列FolderNameFolderDateTime。在Folder_Table中,我有如下所示的值

FolderName   FolderDateTime

Test1        29/3/2014
Test2        20/12/2014
Test3        4/2/2014
test5        9/6/2014

我使用以下编码将2行从Folder_table复制到folder_filter

folder_filter = Folder_table.Rows.Cast<System.Data.DataRow>().Take(2).CopyToDataTable();

我想通过降序FolderDateTime列来订购。怎么做。请帮忙

2 个答案:

答案 0 :(得分:11)

如果您的字段数据类型为DateTime,则可以使用:

var sortedTable = Folder_table.AsEnumerable()
                 .OrderBy(r => r.Field<DateTime>("FolderDateTime"))
                 .CopyToDataTable();

如果列类型为string,则首先必须将这些值解析为DateTime类型对象。使用格式为DateTime.ParseExact的{​​{1}},如:

d\M\yyyy

您应该看到:LINQ to DataSet/ DataTable - MSDN

答案 1 :(得分:0)

你可以使用

var sortTable = Folder_table.AsQueryable().OrderBy(r => r.FolderDataTime).ToList();