请教linq to DataTable取前5条的例子

彗星 2013-04-28 03:50:26
需求如下,DataTable为查出学生表成绩,按成绩排序取出前5条,网上看了些例子,用到Take(5),但只能用在IList<T>里。我的写法是
var query = from t in dt.AsEnumerable()
orderby t.Field<Int32>("score")
select t;
接着怎么去前5条呢?
...全文
258 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
彗星 2013-04-28
  • 打赏
  • 举报
回复
var query = (from t in dt.AsEnumerable() where t.Field<string>("isindoor")=="室外" orderby t.Field<decimal>("utility_rate") select t).Take(5);
燕雀之志 2013-04-28
  • 打赏
  • 举报
回复
引用 4 楼 qwe010xx 的回复:
但是我编译都没通过,报错是: 错误 7 “System.Data.OrderedEnumerableRowCollection<System.Data.DataRow>”不包含“Take”的定义,并且找不到可接受类型为“System.Data.OrderedEnumerableRowCollection<System.Data.DataRow>”的第一个参数的扩展方法“Take”(是否缺少 using 指令或程序集引用?)
你贴代码,我用take一点问题没有啊。
彗星 2013-04-28
  • 打赏
  • 举报
回复
但是我编译都没通过,报错是: 错误 7 “System.Data.OrderedEnumerableRowCollection<System.Data.DataRow>”不包含“Take”的定义,并且找不到可接受类型为“System.Data.OrderedEnumerableRowCollection<System.Data.DataRow>”的第一个参数的扩展方法“Take”(是否缺少 using 指令或程序集引用?)
City_member 2013-04-28
  • 打赏
  • 举报
回复
var q = (from t in dt.AsEnumerable() orderby t.Field<Int32>("score") select t).Take(5); //取5到10 var d=q.Take(10).Skip(5);
City_member 2013-04-28
  • 打赏
  • 举报
回复
var query = (from t in dt.AsEnumerable() orderby t.Field<Int32>("score") select t).Take(5);
luhuiming741cs 2013-04-28
  • 打赏
  • 举报
回复
var query = (from t in dt.AsEnumerable() orderby t.Field<Int32>("score") select t).Take(5); 只要继承IEnumerable都可以Take

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧