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);
求正确语法,急求。
展开
 我来答
百度网友5298263
2017-04-12 · TA获得超过968个赞
知道小有建树答主
回答量:1005
采纳率:94%
帮助的人:527万
展开全部
var groupDatas = datas.GroupBy(d =>new{item1=d["t09LibraryName"],item2=d["strGroupBy"]}).OrderBy(g => g.Key);

不过OrderBy语句不一定能够正确排序
因为这种匿名对象是无法得知如何比较大小的
追问
这样得到的结果不知道是什么,仅仅只能编译过
追答
你可以尝试把两个分组关键字字符串连接起来
var groupDatas = datas.GroupBy(d =>d["t09LibraryName"]+d["strGroupBy"] ).OrderBy(g => g.Key);
这样既能分组又能排序
当然这两个最好都是定长的或者用PadLeft之类的填充一下再+
更好也更麻烦的办法是

实现一个类 里面就2个字符串成员 实现IEquals和IComparable
再linq里new这个类 写入两个分组关键字,就能完美分组和排序
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式