C#
定石2: List<T> —可変長・最も多用される実装型
出典: C# のコレクション選び — 配列 / List / IEnumerable / IList の使い分け完全ガイド — 定石2: List<T> —可変長・最も多用される実装型
// ✅定石2: List<T>の基本
var customers = new List<CustomerVm>();
//追加
customers.Add(new CustomerVm { Id = 1, Name = "サンプル商事" });
customers.Add(new CustomerVm { Id = 2, Name = "山田工業" });
//インデックスアクセス
var first = customers[0];
//削除
customers.RemoveAt(0);
customers.RemoveAll(c => c.Name.StartsWith("廃止"));
// AddRangeで配列・他コレクションから一括追加
var newOnes = LoadFromDb();
customers.AddRange(newOnes);
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「定石2: List<T> —可変長・最も多用される実装型」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
4 件// ✅定石1:配列T[] の基本 int[] daysInMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; string[] weekDays = new string[7] { "月", "火", "水", "木", "金", "土", "日" };未収録
定石1:配列T[] —固定長・最速だがAPIでは出番が絞られる
#30be80acb5d1
// ✅定石3: IEnumerable<T>と遅延評価 public IEnumerable<CustomerVm> GetActiveCustomers() { return _db.Customers
▶ 実行可
定石3: IEnumerable<T> —遅延評価・LINQの基本型
#492870f19ead
// ✅定石4: IList<T>をメソッド引数で受ける public void ProcessCustomers(IList<CustomerVm> customers) { //インデックスアクセス未収録
定石4: IList<T> —メソッド引数の汎用型
#3ab6caaff422
// ✅定石5:共変(covariance)の例 class Animal { } class Dog : Animal { }未収録
定石5:共変・反変の罠— IEnumerable<T>は共変・IList<T>は不変
#9af670d7acd0
