Remove: 一致する要素を削除
リスト名.Remove(値)
概要:最初に一致した要素を削除
値にはListから削除したい値を指定します。
最初に見つかった要素だけ削除するので、一致する要素すべて削除したい場合は
後述するRemoveAllを使う必要があります。
Dim list As New List(Of String) From {"a", "b", "c", "b"} For Each item In list Console.WriteLine("削除前 :" + item) Next Console.WriteLine("------------------------") list.Remove("b") '一致する要素を削除 For Each item In list Console.WriteLine("削除後 :" + item) Next Console.ReadLine() 'コンソールが閉じないよう、入力待ち
実行結果
削除前 :a 削除前 :b 削除前 :c 削除前 :b ------------------------ 削除後 :a 削除後 :c 削除後 :b
RemoveAll: 一致する要素をすべて削除
リスト名.RemoveAll(条件)
概要:条件に一致した要素すべて削除
ただし、引数の条件に添字を入れることは出来ないので
別の関数を書くか、ラムダ式を使うことになります。
大体はラムダ式を使うパターンが多いです。
Dim list As New List(Of String) From {"a", "b", "c", "b"} For Each item In list Console.WriteLine("削除前 :" + item) Next Console.WriteLine("------------------------") list.RemoveAll(Function(s As String) s = "b") '一致する要素を削除 For Each item In list Console.WriteLine("削除後 :" + item) Next Console.ReadLine() 'コンソールが閉じないよう、入力待ち
実行結果
削除前 :a 削除前 :b 削除前 :c 削除前 :b ------------------------ 削除後 :a 削除後 :c
RemoveAt: indexで要素を削除
リスト名.RemoveAt(index)
概要:indexの要素を削除
indexには0から始まる添字を指定します。
Dim list As New List(Of String) From {"a", "b", "c"} For Each item In list Console.WriteLine("削除前 :" + item) Next Console.WriteLine("------------------------") list.RemoveAt(1) 'indexの要素を削除 For Each item In list Console.WriteLine("削除後 :" + item) Next Console.ReadLine() 'コンソールが閉じないよう、入力待ち
実行結果
削除前 :a 削除前 :b 削除前 :c ------------------------ 削除後 :a 削除後 :c
RemoveRange: 範囲で要素を削除
リスト名.RemoveRange(始点index, 削除個数)
概要:indexから指定した個数分を削除
Dim list As New List(Of String) From {"a", "b", "c", "d", "e"} For Each item In list Console.WriteLine("削除前 :" + item) Next Console.WriteLine("------------------------") list.RemoveRange(1, 3) 'index 1から 3つを削除 For Each item In list Console.WriteLine("削除後 :" + item) Next Console.ReadLine() 'コンソールが閉じないよう、入力待ち
実行結果
削除前 :a 削除前 :b 削除前 :c 削除前 :d 削除前 :e ------------------------ 削除後 :a 削除後 :e
Clear: 要素の全削除
リスト名.Clear()
概要:すべての要素を削除
こちらはRemove系のメソッドではありませんが
一括でリストを削除できるので紹介しておきます。
Dim list As New List(Of String) From {"a", "b", "c"} For Each item In list Console.WriteLine("削除前 :" + item) Next Console.WriteLine("------------------------") list.Clear() 'すべての要素を削除 For Each item In list Console.WriteLine("削除後 :" + item) Next Console.ReadLine() 'コンソールが閉じないよう、入力待ち
実行結果
削除前 :a 削除前 :b 削除前 :c ------------------------
最後に
いかがだったでしょうか?
今回はListの削除系のメソッドを紹介しました。

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