C#中對泛型List進行分組輸出元素


背景:在輸出列表時,往往需要按照某一字段進行分組,比如在輸出城市列表時,按照首字母進行分組,輸出學生列表時,按照年級進行分組,然后再對分組的結果按照其他的字段進行排序。

如存在以下STU學生類,代碼如下:

1     public class STU
2     {
3         public int ID { get; set; }
4         public string Name { get; set; }
5         public int Age { get; set; }
6         public string City { get; set; }
7     }

存在如下學生列表:

1             List<STU> stuList = new List<STU>()
2             {
3                 new STU{ID=1,Name="Lily",Age=18,City="NewYork"},
4                 new STU{ID=2,Name="Lucy",Age=20,City="NewYork"},
5                 new STU{ID=1,Name="LiLei",Age=18,City="BeiJIng"}
6             };

先按照城市進行分組,在對同一城市中的學生,按照年齡進行排序,分別輸出,代碼如下:

1             foreach (IGrouping<string,STU> group in stuList.GroupBy(c=>c.City))
2             {
3                 Console.WriteLine("當前的城市為" + group.Key);
4                 foreach (STU stu in group.OrderBy(a=>a.Age))
5                 {
6                     Console.Write(stu.Name+";");
7                 }
8                 Console.WriteLine();
9             }

   注意,IGroupoing存在兩個參數,第一個參數對應於分組字段的類型,也就是說如果按照城市進行分組,則第一個參數的類型應該是string,如果是按照年齡進行分組,參數類型就應該是int。第二個參數,對應於List元素的類型,本例中為STU。


免責聲明!

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



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