dataTable內實現排序

來源:互聯網
上載者:User
C# code

static void UseOrderByWhere( )

{

DataSet ds = BuildOneDTDataSet( ); //擷取資料集ds

DataTable dt = ds.Tables["PeopleDT"]; //從資料集ds中擷取名為“PeopleDT”的資料表dt

//查詢query3查詢資料表中所有年齡大於22的人,並且按照年齡從低到高排序

var query3 =

from pl in dt.AsEnumerable( )

orderby pl.Field<int>("Age")

where pl.Field<int>("Age") > 22

select pl;

System.Console.WriteLine("Query3:");

foreach (var item in query1) //列印查詢query3的結果

{

System.Console.WriteLine("姓名:{0},性別:{1},年齡:{2}",

item.Field<string>("Name"), item.Field<string>("XingBie"), item.Field<int>("Age"));

}

//查詢query4查詢資料表中所有年齡大於20小於25的人,並且按照年齡從高到低排序

var query4 =

from pl in dt.AsEnumerable( )

orderby pl.Field<int>("Age") descending

where pl.Field<int>("Age") > 20

where pl.Field<int>("Age") < 25

select pl;

System.Console.WriteLine("Query4:");

foreach (var item in query2) //列印查詢query4的結果

{

System.Console.WriteLine("姓名:{0},性別:{1},年齡:{2}",

item.Field<string>("Name"), item.Field<string>("XingBie"), item.Field<int>("Age"));

}

}


範例程式碼的輸出如下所示,其中,query3輸出是年齡大於22歲的記錄,query4輸出是年齡在20~25之間的記錄。

Query3:

姓名:吳八,性別:男,年齡:24

姓名:夏七,性別:男,年齡:25

Query4:

姓名:吳八,性別:男,年齡:24

姓名:李花,性別:女,年齡:22

姓名:李四,性別:男,年齡:21

技巧:LINQ to
DataSet查詢DataTable的資料可以簡單分成兩個部分,首先是將DataTable轉換成IEnumerable<T>資料集
合,然後就是對IEnumerable<T>進行操作,這一步可以完全應用第7章介紹的所有LINQ查詢操作。

linq中 將 DataTable轉換成IEnumerable<T>資料集合,然後就是對IEnumerable<T>進行操作

微軟早就給你搞好了,不需要你去用IList<T>

dt 和 list 都可以排序的實質也沒有太大的區別 如果實在需要 我可以給你貼出代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.