Remove: 一致する要素を削除
リスト名.Remove(値)
概要:最初に一致した要素を削除
値と一致するか先頭から探索し、最初に見つかった要素を削除します。
一致する要素すべて削除したい場合は、後述するRemoveAllを使う必要があります。
List<string> list = new List<string>() { "a", "b", "c", "b" }; Console.WriteLine(string.Join(", ", list)); list.Remove("b"); //一致する要素を削除 Console.WriteLine(string.Join(", ", list)); Console.ReadLine(); //コンソールが閉じないよう、入力待ち
実行結果
a, b, c, b a, c, b
ちなみにstring.Join()ですが、listの要素を1つの文字列にしています。
foreachで回しても良いのですが、コードが長くなるので使っていません。
RemoveAll: 一致する要素をすべて削除
リスト名.RemoveAll(条件)
概要:条件に一致した要素すべて削除
ただし、引数の条件に添字を入れることは出来ないので
ラムダ式を使うか、別の関数を書くことになります。
ラムダ式の方が短く書けるので、こちらを紹介します!
List list = new List() { "a", "b", "c", "b" }; Console.WriteLine(string.Join(", ", list)); list.RemoveAll(s => s == "b"); //一致する要素をすべて削除 Console.WriteLine(string.Join(", ", list)); Console.ReadLine(); //コンソールが閉じないよう、入力待ち
実行結果
a, b, c, b a, c
RemoveAt: indexで要素を削除
リスト名.RemoveAt(index)
概要:indexの要素を削除
indexには0から始まる添字を指定します。
List<string> list = new List<string>() { "a", "b", "c", "b" }; Console.WriteLine(string.Join(", ", list)); list.RemoveAt(1); //indexの要素を削除 Console.WriteLine(string.Join(", ", list)); Console.ReadLine(); //コンソールが閉じないよう、入力待ち
実行結果
a, b, c, b a, c, b
RemoveRange: 範囲で要素を削除
リスト名.RemoveRange(始点index, 削除個数)
概要:indexから指定した個数分を削除
List<string> list = new List<string>() { "a", "b", "c", "b" }; Console.WriteLine(string.Join(", ", list)); list.RemoveRange(1, 3); //index 1から 3つを削除 Console.WriteLine(string.Join(", ", list)); Console.ReadLine(); //コンソールが閉じないよう、入力待ち
実行結果
a, b, c, b a
Clear: 要素の全削除
リスト名.Clear()
概要:リスト内のすべての要素を削除
こちらはRemove系ではありませんが
一括でリストを削除できるので紹介しておきます。
List<string> list = new List<string>() { "a", "b", "c", "b" }; Console.WriteLine(string.Join(", ", list)); list.Clear(); //すべての要素を削除 Console.WriteLine("削除後:" + string.Join(", ", list)); Console.ReadLine(); //コンソールが閉じないよう、入力待ち
実行結果
a, b, c, b 削除後:
最後に
いかがだったでしょうか?
今回はListの削除系のメソッドを紹介しました。

新米太郎
お読み頂きありがとうございました!
コメント