公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 排序的多種實現方式(經典)

admin
2024年3月19日 10:35 本文熱度 1089

   排序是我們編程時的常用操作,實現方式也有很多種,本篇文章列舉幾種我常用的用法,希望對大家有用!

01


數組排序


最常見的排序是對一個數組排序,比如:

 int[] aArray = new int[8] { 18, 17, 21, 23, 11, 31, 27, 38 };


第一種:我們最熟悉的冒泡排序法:即每個值都和它后面的數值比較,每次拿出最小值

static void Main(string[] args)        {            int[] aArray = new int[8] { 18, 17, 21, 23, 11, 31, 27, 38 };            for (int j = 0; j < aArray.Length - 1; j++)            {                for (int i = 0; i < aArray.Length - 1; i++)                {                    if (aArray[i] > aArray[i + 1])                    {                        int temp = aArray[i];                        aArray[i] = aArray[i + 1];                        aArray[i + 1] = temp;                    }
               }            }
           foreach (var a in aArray)            {                Console.Write($"{a} ");            }            Console.ReadKey();        }

運行結果:


第二種:利用Array.Sort排序:

① 升序排列:

 static void Main(string[] args)        {            int[] aArray = new int[8] { 18, 17, 21, 23, 11, 31, 27, 38 };            Array.Sort(aArray);
           foreach (var a in aArray)            {                Console.Write($"{a} ");            }            Console.ReadKey();        }

運行結果:



② 降序排列:先升序排列,然后對數組反轉

  static void Main(string[] args)        {            int[] aArray = new int[8] { 18, 17, 21, 23, 11, 31, 27, 38 };            Array.Sort(aArray);            Array.Reverse(aArray);
           foreach (var a in aArray)            {                Console.Write($"{a} ");            }            Console.ReadKey();        }


運行結果:






02



List排序

大多數時候,我們需要將list集合里面的數據進行排序,

① 如果list直接放置的數值類型的數據就比較簡單,比如:

List<int> aList = new List<int> { 18, 17, 21, 23, 11, 31, 27, 38 };

方法一:利用List<T> 自帶的Sort排序方法 

升序排列:

aList.Sort();

降序排列:

aList.Sort();
aList.Reverse();

sort也可以用如下方式操作:

list.Sort((a, b) => a.CompareTo(b));//升序
list.Sort((a, b) => b.CompareTo(a));//降序


方法二:利用List的OrderBy與OrderByDescending方法


升序排列:

 List<int> aList = new List<int> { 18, 17, 21, 23, 11, 31, 27, 38 };
 aList = aList.OrderBy(a => a).ToList();

降序排列:

 List<int> aList = new List<int> { 18, 17, 21, 23, 11, 31, 27, 38 };
 aList = aList.OrderByDescending(a => a).ToList();


方法三:利用link,這種感覺和方法二是一回事

 List<int> aList = new List<int> { 18, 17, 21, 23, 11, 31, 27, 38 };
 aList = (from a in aList orderby a ascending select a).ToList();//升序
 aList = (from a in aList orderby a descending select a).ToList();//降序


②如果list存放的是一個類型,比如:


方法一: 一個集合存放學生的信息,按照學生的成績升序排列:這里列舉了2種方法,方法一注釋了


 static void Main(string[] args)        {            List<Student> stuList = new List<Student>            {                new Student() {name = "zyr", age = 23, score = 99},                new Student() {name = "zls", age = 25, score = 95},                new Student() {name = "zsq", age = 27, score = 100},                new Student() {name = "zlw", age = 15, score = 69},                new Student() {name = "ywe", age = 17, score = 72},                new Student() {name = "asw", age = 29, score = 58}            };
           //方法1 升序            //stuList.Sort((x, y) => x.score.CompareTo(y.score));            //方法2 升序            stuList = stuList.OrderBy(stu=>stu.score).ToList();
           foreach (var stu in stuList)            {                Console.WriteLine($"{stu}");            }            Console.ReadKey();        }
       public class Student        {            public string name { get; set; }            public int age { get; set; }            public int score { get; set; }
           public override string ToString()            {                return $"姓名是:{name},年齡是:{age},得分是:{score}";            }        }


運行結果:


方法二: 加入這個學生成績有重復的,對于重復的成績按照年齡再排序:這里列舉了2種方法,方法一注釋了


 static void Main(string[] args)        {            List<Student> stuList = new List<Student>            {                new Student() {name = "zyr", age = 23, score = 99},                new Student() {name = "zls", age = 25, score = 95},                new Student() {name = "zls", age = 22, score = 95},                new Student() {name = "zsq", age = 27, score = 100},                new Student() {name = "zlw", age = 15, score = 69},                new Student() {name = "ywe", age = 17, score = 72},                new Student() {name = "asw", age = 29, score = 58},                new Student() {name = "ywe", age = 18, score = 72},                new Student() {name = "zsq", age = 16, score = 100},            };
           //方法1 升序            //stuList.Sort((x, y) =>            //{            //    int ret = x.score.CompareTo(y.score);            //    if (ret == 0)            //    {            //        return x.age.CompareTo(y.age);            //    }            //    else            //    {            //        return ret;            //    }            //});            //方法2 升序            //stuList = stuList.OrderBy(stu=>stu.score).ThenBy(stu => stu.age).ToList();
           foreach (var stu in stuList)            {                Console.WriteLine($"{stu}");            }            Console.ReadKey();        }
       public class Student        {            public string name { get; set; }            public int age { get; set; }            public int score { get; set; }
           public override string ToString()            {                return $"姓名是:{name},年齡是:{age},得分是:{score}";            }        }


該文章在 2024/3/19 10:35:08 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产女主播在线观看五月 | 国产aⅴ无码专区亚洲aⅴ毛 | 成人夜色香网站在线观看 | 国产福利不卡一区二区三区 | a级毛片在线高清观看 | 国产精品成人不卡在线观看 | 国产日韩欧美集合一区二区三区 | 91一区二区三区在线 | 国产人妻久久精品二区三区特黄 | 成人精品视频在线 | 按摩已婚人妻精品中文字幕 | 国产精品色色视屏 | 国产精品入口麻豆 | 国产成人一区二区三区毛片 | 成人午夜黄网站在 | 国产精品亚洲āv色欲在线观看 | 91免费在线 | 精品视频一区二区三区在线播放 | 国产午夜人成视频在线观看 | 成人精品久久一区 | 国产中文字幕久久一区 | 成人国产精品秘果冻传媒在线 | 99久久国产自偷自自偷蜜月 | 国产精品麻豆入口92 | 国产精品99一区二区三区 | 国产美女爽爽爽免费视频电影 | 国产精品一区二区久久久久久 | 成人一区二区三区视频在线观看 | 国产成人精品.一二区 | 国产日韩久久久久精品影视 | 国产精品无码久久久最线观看 | 韩亚洲欧美综合一区久久久久久 | 国产日韩久久久久无码精品 | 国产在线观看一区二区三区四区 | 国产一本到高清视频在 | 国产成人av在线亚洲 | 国产成人精品午夜福利在线播放 | 国产亚洲欧美日韩综合综合二区 | 国产午夜成人av在线播放 | 精品无码一区二区三区水蜜桃 | 国产精品成人v?在线观看 |