-
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 都可以排序的实质也没有太大的区别 如果实在需要 我可以给你贴出代码