C#對List排序的三種方式的比較


對List排序,有三種方式,自定義比較器、lamda排序、自定義方法排序。以下是源碼:

 1 using System;
 2 using System.Collections.Generic;
 3 
 4 namespace CustomDLL
 5 {
 6     public class PeopleCompare : IComparer<People>
 7     {
 8         public int Compare(People x, People y)
 9         {
10             return x.age.CompareTo(y.age);
11         }
12     }
13 
14     public class People
15     {
16         public int age;
17     }
18 
19     public class City
20     {
21         List<People> allPeople = new List<People>();
22 
23         PeopleCompare peopleCompare = new PeopleCompare();
24         //自定義比較器排序
25         public void SortPeopleFun1()
26         {
27             allPeople.Sort(peopleCompare);
28         }
29 
30         //Lamda排序
31         public void SortPeopleFun2()
32         {
33             allPeople.Sort((a, b) => { return a.age.CompareTo(b.age); });
34         }
35 
36         //自定義方法排序
37         public void SortPeopleFun3()
38         {
39             allPeople.Sort(Sort);
40         }
41 
42         int Sort(People a, People b)
43         {
44             return a.age.CompareTo(b.age);
45         }
46     }
47 }

生成dll,通過反編譯查看下這三種方式的區別:

觀察源碼行數和反編譯的結果,可以發現,自定義方法對List排序應該被優先選擇的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM