【VB.net】List Remove系メソッドの使い方 要素を削除する様々なパターン




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の削除系のメソッドを紹介しました。

 

新米太郎
新米太郎

お読み頂きありがとうございました!




コメント

タイトルとURLをコピーしました