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

use*_*234 5 c# linq asp.net

我有两个数据表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
Run Code Online (Sandbox Code Playgroud)

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

folder_filter = Folder_table.Rows.Cast<System.Data.DataRow>().Take(2).CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)

我想按FolderDateTime列降序排序.怎么做.请帮忙

Hab*_*bib 13

如果您的字段数据类型是,DateTime那么您可以使用:

var sortedTable = Folder_table.AsEnumerable()
                 .OrderBy(r => r.Field<DateTime>("FolderDateTime"))
                 .CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)

如果您的列类型是string第一个,则必须将这些值解析为DateTime类型对象.使用DateTime.ParseExact格式d\M\yyyy如:

var sortedTable = Folder_table.AsEnumerable()
                 .OrderBy(r => DateTime.ParseExact(r.Field<string>("FolderDateTime"),
                                                    "d/M/yyyy", CultureInfo.InvariantCulture))
                 .CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)

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