C# List.sort排序详解(多权重,升序降序)
来源:互联网 发布:营养配餐软件 编辑:程序博客网 时间:2024/05/16 10:49
很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序。
其实理解了并不难
升序降序比较
sort有三种结果 1,-1,0分别是大,小,相等。
默认List的排序是升序排序
如果要降序排序,也很简单,只需要在前面加一个负号
List<int> tmp = new List<int>(){5,1,22,11,4};tmp.Sort((x, y) => -x.CompareTo(y));Console.WriteLine(tmp);//22,11,5,4,1
对于非数值类型比较用.CompareTo(...),基于IComparable接口。基本上C#的值类型都有实现这个接口,包括string。
而数值类型也可以自己比较。排序时左右两个变量必须是左-比较-右(被比较),切记不可反过来用。
微软官方推荐的参数命名方式是x(左),y(右)
多权重比较
假设需要tuple里item2的值优先于item1。这个时候只要给比较结果*X。
List<Tuple<int, int>> tmp = new List<Tuple<int, int>>(){ new Tuple<int,int>(2,1), new Tuple<int,int>(53,1), new Tuple<int,int>(12,1), new Tuple<int,int>(22,3), new Tuple<int,int>(1,2),};tmp.Sort((x, y) => -(x.Item1.CompareTo(y.Item1) + x.Item2.CompareTo(y.Item2) * 2));Console.WriteLine(tmp);//22,3//1,2//53,1//12,1//2,1//Tip: Item2 > Item1
如果单独对升序降序控制,可以去掉大括号,分开处理
0 0
- C# List.sort排序详解(多权重,升序降序)
- C# List Sort 按照名称升序排序
- java List Collections.sort 排序 支持 对象属性 普通数据类型 升序 降序 正序 倒序 排列
- java list集合数据升序降序排序
- unity3dC#的List升序降序排序
- c# OrderBy 实现List升序降序
- std::sort 升序 ? 降序
- 对List的升序与降序排列函数sort()
- 对List的升序与降序排列函数sort()
- C++ sort 排序(降序、升序)使用总结
- C++ sort 排序(降序、升序)使用总结
- matlab sort()升序和降序
- Java的数组和list升序,降序,逆序函数Collections.sort和Arrays.sort的使用
- 排序问题,升序和降序
- 排序升序降序样式+传值
- C# 排序 List.Sort
- C# List排序Sort
- C# list sort 排序
- 如何比较2个数组的按键值是否相等?
- set删除某位置元素
- Eclipse设置背景色、字体大小
- NSTimer 使用进阶
- 消息队列、OSS常用操作封装
- C# List.sort排序详解(多权重,升序降序)
- 【HDU】5420 Victor and Proposition【SCC+线段树】
- Struts2开发指南
- TensorFlow文档索引
- JavaScript 标签云
- jQuery.extend 函数详解
- Camel In Action 第四章 Camel中bean的使用
- view的模糊背景
- javascript字符串分割为数组