C#-实现对版本号的自动排序
前提是版本号都是Vxx.xx.xx.xx....的格式,xx代表数字,不能有除V以外其他字母
记录两种比较方法,一种是vs自带的Version类,一种是自己写的,根据比较结果,使用冒泡排序进行排序。
先给出一堆乱序的版本号:
1 2 3 4 5 6 7 8 9 10 11 12 13 | List< string > verList; private void InitVersion() { verList = new List< string >(); verList.Add( "V1.2.32.1" ); verList.Add( "V1.2.2.12" ); verList.Add( "V1.4.3.2" ); verList.Add( "V1.1.33.21" ); verList.Add( "V1.0.3.2" ); verList.Add( "V1.2.6.14" ); verList.Add( "V1.3.3.2" ); verList.Add( "V1.1.4.2" ); } |
【Version方式】使用冒泡排序进行排序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | private void SortVersion() { for ( int i = 0; i < verList.Count - 1; i++) { for ( int j = 0; j < verList.Count - 1 - i; j++) { Version v1 = new Version(verList[j].Replace( "V" , "" )); Version v2 = new Version(verList[j + 1].Replace( "V" , "" )); if (v1.CompareTo(v2) > 0) { string temp = verList[j]; verList[j] = verList[j + 1]; verList[j + 1] = temp; } } } } |
【自己写的方法】比较两个版本大小,返回判断结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | private bool IsV2UpToV1( string v1, string v2) { string [] str1 = v1.Replace( "V" , "" ).Split( '.' ); string [] str2 = v2.Replace( "V" , "" ).Split( '.' ); bool isHigh = false ; for ( int j = 0; j < Math.Max(str1.Length, str2.Length); j++) { if (str2.Length <= j) break ; if (str1.Length <= j ) { isHigh = true ; break ; } if (Convert.ToInt16(str2[j]) == Convert.ToInt16(str1[j])) continue ; isHigh = Convert.ToInt16(str2[j]) > Convert.ToInt16(str1[j]); break ; } return isHigh; } |
使用冒泡排序进行排序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private void SortVersion() { for ( int i = 0; i < verList.Count - 1; i++) { for ( int j = 0; j < verList.Count - 1 - i; j++) { if (!IsV2UpToV1(verList[j], verList[j + 1])) { string temp = verList[j]; verList[j] = verList[j + 1]; verList[j + 1] = temp; } } } } |
运行程序:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)