C# List Distinct寫法
若List裡為值類型(Value Type Calss), 只需要使用下列語法, 就可以取得唯一清單 List<string> aList = dataList.Distinct().ToList(); 但若List裡面是放一個Class, 而且有多個屬性, 就需要額外加工一下, 才能真正取得唯一清單, 否則執行完上述語法後, 雖然不會錯誤, 但也沒效果。 需要在Class裡新增下列方法 public override bool Equals(object obj) public override int GetHashCode() 程式可以參考如下, public Class ClassA { public string A { get; set; } public string B { get; set; } public override bool Equals(object obj) { // 如果傳入的物件是null,返回false if (obj == null) return false; // 如果傳入的對象不是 ClassA 類型,返回false if (!(obj is ClassA)) return false; // 將傳入的對象轉換為 ClassA 類型 ClassA other = (ClassA)obj; // 根據需要比較 ClassA 的屬性,這裡比較A和B屬性 return A == other.A && B == other.B; } public override int GetHashCode() { // 使用性的HashCode來生成物件的HashCode return (A.GetHashCode()) ^ (B.GetHashCode()); } } 有了以上程式後, 再使用List.Distinct()時, 就有作用了。 20231117 : 透過Group...first也可以達到Distinct效果, 參考 這篇 。