本文實(shí)例講述了C#實(shí)現(xiàn)泛型List分組輸出元素的方法。分享給大家供大家參考,具體如下:
背景:在輸出列表時,往往需要按照某一字段進(jìn)行分組,比如在輸出城市列表時,按照首字母進(jìn)行分組,輸出學(xué)生列表時,按照年級進(jìn)行分組,然后再對分組的結(jié)果按照其他的字段進(jìn)行排序。
如存在以下STU學(xué)生類,代碼如下:
1
2
3
4
5
6
7
|
public class STU { public int ID { get ; set ; } public string Name { get ; set ; } public int Age { get ; set ; } public string City { get ; set ; } } |
存在如下學(xué)生列表:
1
2
3
4
5
6
|
List<STU> stuList = new List<STU>() { new STU{ID=1,Name= "Lily" ,Age=18,City= "NewYork" }, new STU{ID=2,Name= "Lucy" ,Age=20,City= "NewYork" }, new STU{ID=1,Name= "LiLei" ,Age=18,City= "BeiJIng" } }; |
先按照城市進(jìn)行分組,在對同一城市中的學(xué)生,按照年齡進(jìn)行排序,分別輸出,代碼如下:
1
2
3
4
5
6
7
8
9
|
foreach (IGrouping< string ,STU> group in stuList.GroupBy(c=>c.City)) { Console.WriteLine( "當(dāng)前的城市為" + group.Key); foreach (STU stu in group.OrderBy(a=>a.Age)) { Console.Write(stu.Name+ ";" ); } Console.WriteLine(); } |
注意,IGroupoing存在兩個參數(shù),第一個參數(shù)對應(yīng)于分組字段的類型,也就是說如果按照城市進(jìn)行分組,則第一個參數(shù)的類型應(yīng)該是string,如果是按照年齡進(jìn)行分組,參數(shù)類型就應(yīng)該是int。第二個參數(shù),對應(yīng)于List元素的類型,本例中為STU。
希望本文所述對大家C#程序設(shè)計有所幫助。
原文鏈接:http://www.cnblogs.com/SharpL/p/4675645.html