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

定石4: IList<T> —メソッド引数の汎用型

出典: C# のコレクション選び — 配列 / List / IEnumerable / IList の使い分け完全ガイド定石4: IList<T> —メソッド引数の汎用型

定石4: IList<T> —メソッド引数の汎用型 (csharp)#3ab6caaff422
// ✅定石4: IList<T>をメソッド引数で受ける
public void ProcessCustomers(IList<CustomerVm> customers)
{
    //インデックスアクセス
    var first = customers[0];
 
    // Count
    int total = customers.Count;
 
    //追加・削除も可能
    customers.Add(new CustomerVm { Id = 999, Name = "新規" });
}
 
//呼び出し側: List<T>でも配列でも渡せる
List<CustomerVm> list = LoadFromDb();
CustomerVm[] array = list.ToArray();
 
ProcessCustomers(list);    // OK
ProcessCustomers(array);   // OK(配列もIList<T>実装)
 
// IEnumerable<T>だけ渡せない(編集できないので)
IEnumerable<CustomerVm> enumerable = LoadFromDb();
// ProcessCustomers(enumerable);   //コンパイルエラー
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #3ab6caaff422
  • lines: 23
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「定石4: IList<T> —メソッド引数の汎用型」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ