標籤:end uil var 輸出 ima class 重複 ons main
分別使用過List中Distinct(),GroupBy()實現鏈表的去重。
1.先上效果:
一維鏈表中分別有元素“aa”,"bb",‘aa‘,‘aa‘,"cc",使用Distinct()方法後輸出 aa,bb,cc
二維鏈表中類型為ClassA類型,其中對象的屬性A分別為1,1,2,3,1,使用GroupBy()方法實則是分類,輸出Key值分別為1,2,3。
2.上代碼,類ClassA
1 class ClassA 2 { 3 private int a; 4 public int A 5 { 6 get { return a; } 7 set { a = value; } 8 9 }10 11 private string b;12 public string B13 {14 get { return b; }15 set { b = value; }16 17 }18 }
主函數,分別列印一維鏈表,二維鏈表去重後輸出的值。
1 static void Main(string[] args) 2 { 3 //1.一維鏈表去重複(Distinct方法) 4 List<string> lst1 = new List<string>() { "aa", "bb", "cc", "aa", "bb" }; 5 List<string> lst1Distinct = lst1.Distinct().ToList(); 6 7 StringBuilder sb1 = new StringBuilder(); 8 sb1.Append("一維鏈表去重:"); 9 foreach (var item in lst1Distinct) 10 {11 sb1.Append(item);12 sb1.Append("-");13 }14 Console.WriteLine(sb1.ToString());//結果為 aa-bb-cc-15 16 //2.二維鏈表去重(GroupBy方法)17 List<ClassA> lst2 = new List<ClassA>();18 lst2.Add(new ClassA() { A = 1, B = "aa" });19 lst2.Add(new ClassA() { A = 1, B = "bb" });20 lst2.Add(new ClassA() { A = 2, B = "aa" });21 lst2.Add(new ClassA() { A = 3, B = "aa" });22 lst2.Add(new ClassA() { A = 1, B = "cc" });23 var lst2Distinct = lst2.GroupBy(r => r.A);//根據屬性A分組24 StringBuilder sb2 = new StringBuilder();25 sb2.Append("二維鏈表去重:");26 foreach (var item in lst2Distinct)27 {28 sb2.Append(item.Key.ToString());29 sb2.Append("-");30 }31 Console.WriteLine(sb2.ToString());//結果為1-2-3-32 Console.Read();33 }
C# 鏈表去重 List 一維 二維 分別使用 Distinct() GroupBy() 方法