加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 也许在Linq找到了一个功能.具有多个字段的Groupby

发布时间:2020-12-16 01:53:00 所属栏目:百科 来源:网络整理
导读:这两行似乎做了同样的事情.可以使用plussign()代替匿名类型. var newlist1 = list.GroupBy(x = x.FIELD1 + x.FIELD2).Select(y = y.First());var newlist2 = list.GroupBy(x = new {x.FIELD1,x.FIELD2}).Select(y = y.First()); 现在我的问题: plussign()是
这两行似乎做了同样的事情.可以使用plussign()代替匿名类型.

var newlist1 = list.GroupBy(x => x.FIELD1 + x.FIELD2).Select(y => y.First());

var newlist2 = list.GroupBy(x => new {x.FIELD1,x.FIELD2}).Select(y => y.First());

现在我的问题:

plussign()是否为GroupBy记录了什么?

解决方法

小心这个:)
例如,如果x.FIELD1和x.FIELD2是字符串类型的属性,那么您只是按照连接两者的结果进行分组….这可能不是您想要的.同样适用于其他类型的课程,但仍然是字符串中的示例:

鉴于Field1 =“ABC”和Field2 =“DEF”,您的分组将使用“ABCDEF”键,对吧?

那么如果你有Field1 =“AB”和Field2 =“CDEF”怎么办?非常不同的价值观,但你的分组仍然是“ABCDEF”……

您应该坚持使用匿名类型进行分组(仅在方法中使用时),或者在外部需要时,使用新的类,结构或使用元组.

编辑:另一个快速说明:在你执行了GroupBy(没有投影)之后,看看你得到的Key值……它应该向你显示我的意思的一个例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读