以a.CompareTo(b)为例:
当a>b时,返回1,表示放右边
当a==b时,返回0,表示不变
当a<b时,返回-1,表示放左边
测试:
1 using System.Collections.Generic; 2 using UnityEngine; 3 4 public class TestCompareTo : MonoBehaviour 5 { 6 void Start() 7 { 8 List<int> list = new List<int>() { 3, 5, 2, 4, 1}; 9 list.Sort((a, b) => a.CompareTo(b));//升序 10 Print(list); 11 list.Sort((a, b) => b.CompareTo(a));//降序 12 Print(list); 13 list.Sort(TestComparer);//升序 14 Print(list); 15 } 16 17 //升序 18 int TestComparer(int a, int b) 19 { 20 if (a > b) 21 { 22 return 1;//放右边 23 } 24 else if(a == b) 25 { 26 return 0;//不变 27 } 28 else 29 { 30 return -1;//放左边 31 } 32 } 33 34 void Print(List<int> list) 35 { 36 string s = ""; 37 for (int i = 0; i < list.Count; i++) 38 { 39 s += list[i].ToString() + ","; 40 } 41 Debug.LogWarning(s); 42 } 43 }
结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?