我有一个要求,我需要在两列中获取具有相同组合的唯一记录。
我的数据将类似于 CA(A 列)和 CB(B 列)以及一些数据
CA
CB
1
2
1
2
3
4
5
6
2
1
1
6
1
6
5
1
比方说,我需要获取有价值的记录1
两列中的内容应该是唯一的。
所以,我的最终结果应该是这样的:
1
2
1
6
5
1
这里我不应该得到记录2
,1
因为该组合已经存在1
,2
在第一条记录中。
这是我尝试过的查询:
var recentchats = (from s in MessagesCollection.AsQueryable()
where (s.@from == mytopic || s.to == mytopic)
orderby s._id descending
select s).DistinctBy(x => x.from).Take(10).ToList();
我用过moreLinq
扩展为DistinctBy
,因为我需要整个记录。(抱歉格式和英语不好!!!)
在这里,我的实际需求是获取用户最近的聊天记录
自从where
已经确保两个值之一始终相同,您可以使用总和distinctBy
。 (例如 1 + 2 等于 2 + 1)
DistinctBy(x => x.from + x.to)
如果没有 where,您可以使用 Min 和 Max 仍然获得唯一的对。
DistinctBy(x => new { Min=Math.Min(x.from, x.to), Max=Math.Max(x.from, x.to) })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)