-
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 都可以排序的實質也沒有太大的區別 如果實在需要 我可以給你貼出代碼