List

Listは要素の参照や既存要素の更新に便利なメソッドも多いため

既存要素に対する処理(新規追加や削除を行わない)がメインの場面で

使用します。

 

/// 宣言と初期化
List<string> list1= new List<string>(){ "a","b","c","d","e"};
/// 宣言と初期化は別々に行うことも可能
var list2 = new List<string> ();
list2.Add("1"); list2.Add("2"); list2.Add("3"); list2.Add("4"); list2.Add("5");
/// リストサイズは予め指定可能
List<int> list3 = new List<int>(10);


/// Index指定による要素取得 : getRange(何個目の要素から,何個目の要素まで)
pl(list1.GetRange(2,3)); /// c,d,eが取得される
/// ListのItem数を取得
show(list1.Count);/// 5が取得される

/// Listに単一Item追加
list1.Add("f");
/// List同士の結合
list1.AddRange(list2); /// a,b,c,d,e,f,1,2,3,4,5が取得される
/// Listの指定番目に要素を追加
list1.Insert(6, "-"); /// a,b,c,d,e,f,-,1,2,3,4,5が取得される
/// 最初にマッチした要素の削除
list1.Remove("-"); /// -が削除され、a,b,c,d,e,f,1,2,3,4,5が取得される

forEachとRemoveにて1要素毎の削除を行った場合エラーとなる。

どうしても1要素毎に条件に該当するか判定、削除をしたい場合は

ForとRemoveAtにてIndexを操作しながら削除を行うこと。


/// Index番号による要素の削除
list1.RemoveAt(1); /// bが削除され、a,c,d,e,f,1,2,3,4,5が取得される
/// Index指定による複数要素の削除
list1.RemoveRange(6, 2); /// 2,3が削除され、a,c,d,e,f,1,4,5が取得される
/// 条件に該当する要素をすべて削除 条件はラムダ式で指定
list1.RemoveAll(s => s.Contains("e")); /// eが削除され、a,c,d,f,1,4,5が取得される
/// 全要素の削除
list1.Clear();
/// 要素で検索
show(list1.Contains("d")); /// Trueが取得
/// 要素位置を前方検索
show(list1.IndexOf("d")); /// 2が取得

/// 要素位置を後方から検索 ただし帰るIndex番号は前方検索と同じ
show(list1.LastIndexOf("d")); /// 2が取得