DataTable dt = new DataTable();
int n = 3;
//用来进行排序的字符串
string myDictionary = "HERABMWSUG";
//对数据进行内部转换并排序后得到需要的数据
//将datatable转成System.Collections.Generic.IEnumerable<T>
var result = from r in dt.AsEnumerable()
//用"用地性质代码"的首位字母在myDictionary中的位置来排序
orderby myDictionary.IndexOf(r.Field<string>("用地性质代码").Substring(0, 1))
//并按"用地性质代码"的子串进行分组
group r by r.Field<string>
("用地性质代码").Substring
(0,
n < r.Field<string>("用地性质代码").Length ? n : r.Field<string>("用地性质代码").Length)
into g
select new
{
//用地性质
g_LandProperty = g.Key,
//获取字段“面积”之和
g_ParcelArea = g.Sum(r => r.Field<double>("面积")),
};