動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

罠:参照型のリストでDistinctは動かない

出典: C# でリストの重複を一意にする3つの書き方(Distinct / GroupBy / HashSet)パターン1: Distinct ──単純な重複を1行で潰す / 罠:参照型のリストでDistinctは動かない

罠:参照型のリストでDistinctは動かない (csharp)#8249db6f6321
//対処A: IEqualityComparer<T>を渡す
public class CustomerComparer : IEqualityComparer<Customer>
{
    public bool Equals(Customer x, Customer y)=>
        x?.Id == y?.Id && x?.Name == y?.Name;
    public int GetHashCode(Customer obj)=>
        (obj?.Id, obj?.Name).GetHashCode();
}
 
var unique = customers.Distinct(new CustomerComparer()).ToList();
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #8249db6f6321
  • lines: 10
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「パターン1: Distinct ──単純な重複を1行で潰す / 罠:参照型のリストでDistinctは動かない」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

10
図鑑トップ