http://hi.baidu.com/jiang_yy_jiang/blog/item/27ab17c436e2a6c638db496f.html
DataTable dt = GetDetails().Tables[0]; //获取可用的DataTable
// var m = dt.AsEnumerable().Last<DataRow>(); 返回DataTable最后一行DataRow
//var m = dt.AsEnumerable().First<DataRow>(); 返回DataTable第一行DataRow
//var m = dt.AsEnumerable().Count<DataRow>();返回DataTable总行数
//var m = dt.AsEnumerable().ElementAt<DataRow>(TipIndex); 返回DataTable 第TipIndex条的DataRow
//var m = dt.AsEnumerable().Reverse<DataRow>(); 对DataTable反向排序
//var m = dt.AsEnumerable().Skip<DataRow>(TipIndex); 跳过DataTable前TipIndex条
var m = dt.AsEnumerable().Take<DataRow>(TipIndex); //提取DataTable前TipIndex条
DataTable T = m.CopyToDataTable<DataRow>();
其中最后一个未注释的是经常用到的,可以用来提取前N行,类似于SQL中的Top N。