本文摘自PHP中文网,作者零下一度,侵删。
去重和排序是开发过程中经常碰到的问题,这篇文章就来总结一下。
去重
方法1:使用内置的distinct
代码如下:
方法2:使用GroupBy
代码如下:
1 2 3 | .Select(p => p.First())
.ToList();
|
方法3:使用自己扩展的DistinctBy方法
代码如下:
完整代码请参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | { public int Id { get; set; } public string BunkCode { get; set; } public double BunkPrice { get; set; }
}
{
{ new TestDistinctClass
{
Id= 1,
BunkCode= "A" ,
BunkPrice= 101}, new TestDistinctClass
{
Id= 2,
BunkCode= "B" ,
BunkPrice= 102}, new TestDistinctClass
{
Id= 3,
BunkCode= "C" ,
BunkPrice= 103}, new TestDistinctClass
{
Id= 4,
BunkCode= "D" ,
BunkPrice= 104}, new TestDistinctClass
{
Id= 5,
BunkCode= "A" ,
BunkPrice= 101}
};
.Select(p => p.First())
.ToList();
.ToList();
}
|
同时,我把扩展方法也贴出来:
1 2 3 4 5 6 7 8 | {
HashSet<TKey> seenKeys = new HashSet<TKey>(); foreach (TSource element in source)
{ if (seenKeys.Add(keySelector(element)))
{yield return element;
}
}
}
|
排序
至于排序,使用Linq提供的api就好了,如下图:

以上就是去重和排序如何操作的详细内容!
相关阅读 >>
去重和排序如何操作
perl中如何对混合字符串进行排序?(代码示例)
asp.net mvc 遇到json循环调用的问题应该怎么解决?
总结.net平台上一些常用的框架
aspx页面中点击表格的字段名实现升序降序排列的一些思路
无法排序,原因是 icomparer.compare() 方法返回不一致的结果。一个值与本身比较不相等,或者一个值与另外一个值重复比较生成不同的结果
更多相关阅读请进入《排序》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » 去重和排序如何操作