`

dataTable内实现排序

    博客分类:
  • C#
阅读更多
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 都可以排序的实质也没有太大的区别 如果实在需要 我可以给你贴出代码

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics