C#里使用linq做多个值的GroupBy操作,被操作对象类型为List<Dictionary<string, string>> datas 100
单个分组无错,vargroupDatas=datas.GroupBy(d=>d["strGroupBy"]).OrderBy(g=>g.Key);,多个语法总是错误,例如...
单个分组无错, var groupDatas = datas.GroupBy(d =>d["strGroupBy"]).OrderBy(g => g.Key);,
多个语法总是错误,例如: var groupDatas = datas.GroupBy(d =>new{d["t09LibraryName"],d["strGroupBy"]}).OrderBy(g => g.Key);
求正确语法,急求。 展开
多个语法总是错误,例如: var groupDatas = datas.GroupBy(d =>new{d["t09LibraryName"],d["strGroupBy"]}).OrderBy(g => g.Key);
求正确语法,急求。 展开
1个回答
展开全部
var groupDatas = datas.GroupBy(d =>new{item1=d["t09LibraryName"],item2=d["strGroupBy"]}).OrderBy(g => g.Key);
不过OrderBy语句不一定能够正确排序
因为这种匿名对象是无法得知如何比较大小的
不过OrderBy语句不一定能够正确排序
因为这种匿名对象是无法得知如何比较大小的
追问
这样得到的结果不知道是什么,仅仅只能编译过
追答
你可以尝试把两个分组关键字字符串连接起来
var groupDatas = datas.GroupBy(d =>d["t09LibraryName"]+d["strGroupBy"] ).OrderBy(g => g.Key);
这样既能分组又能排序
当然这两个最好都是定长的或者用PadLeft之类的填充一下再+
更好也更麻烦的办法是
实现一个类 里面就2个字符串成员 实现IEquals和IComparable
再linq里new这个类 写入两个分组关键字,就能完美分组和排序
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询