StringCollection.Remove(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定の文字列の最初の出現箇所を StringCollectionから削除します。
public:
void Remove(System::String ^ value);
public void Remove(string value);
public void Remove(string? value);
member this.Remove : string -> unit
Public Sub Remove (value As String)
パラメーター
- value
- String
StringCollectionから削除する文字列。 値は nullできます。
例
次のコード例では、 StringCollectionから要素を削除します。
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesStringCollection {
public static void Main() {
// Creates and initializes a new StringCollection.
StringCollection myCol = new StringCollection();
String[] myArr = new String[] { "RED", "orange", "yellow", "RED", "green", "blue", "RED", "indigo", "violet", "RED" };
myCol.AddRange( myArr );
Console.WriteLine( "Initial contents of the StringCollection:" );
PrintValues( myCol );
// Removes one element from the StringCollection.
myCol.Remove( "yellow" );
Console.WriteLine( "After removing \"yellow\":" );
PrintValues( myCol );
// Removes all occurrences of a value from the StringCollection.
int i = myCol.IndexOf( "RED" );
while ( i > -1 ) {
myCol.RemoveAt( i );
i = myCol.IndexOf( "RED" );
}
Console.WriteLine( "After removing all occurrences of \"RED\":" );
PrintValues( myCol );
// Clears the entire collection.
myCol.Clear();
Console.WriteLine( "After clearing the collection:" );
PrintValues( myCol );
}
public static void PrintValues( IEnumerable myCol ) {
foreach ( Object obj in myCol )
Console.WriteLine( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
Initial contents of the StringCollection:
RED
orange
yellow
RED
green
blue
RED
indigo
violet
RED
After removing "yellow":
RED
orange
RED
green
blue
RED
indigo
violet
RED
After removing all occurrences of "RED":
orange
green
blue
indigo
violet
After clearing the collection:
*/
Imports System.Collections
Imports System.Collections.Specialized
Public Class SamplesStringCollection
Public Shared Sub Main()
' Creates and initializes a new StringCollection.
Dim myCol As New StringCollection()
Dim myArr() As [String] = {"RED", "orange", "yellow", "RED", "green", "blue", "RED", "indigo", "violet", "RED"}
myCol.AddRange(myArr)
Console.WriteLine("Initial contents of the StringCollection:")
PrintValues(myCol)
' Removes one element from the StringCollection.
myCol.Remove("yellow")
Console.WriteLine("After removing ""yellow"":")
PrintValues(myCol)
' Removes all occurrences of a value from the StringCollection.
Dim i As Integer = myCol.IndexOf("RED")
While i > - 1
myCol.RemoveAt(i)
i = myCol.IndexOf("RED")
End While
Console.WriteLine("After removing all occurrences of ""RED"":")
PrintValues(myCol)
' Clears the entire collection.
myCol.Clear()
Console.WriteLine("After clearing the collection:")
PrintValues(myCol)
End Sub
Public Shared Sub PrintValues(myCol As IEnumerable)
Dim obj As [Object]
For Each obj In myCol
Console.WriteLine(" {0}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
'This code produces the following output.
'
'Initial contents of the StringCollection:
' RED
' orange
' yellow
' RED
' green
' blue
' RED
' indigo
' violet
' RED
'
'After removing "yellow":
' RED
' orange
' RED
' green
' blue
' RED
' indigo
' violet
' RED
'
'After removing all occurrences of "RED":
' orange
' green
' blue
' indigo
' violet
'
'After clearing the collection:
'
注釈
StringCollectionでは、重複する文字列を使用できます。 最初の出現箇所のみが削除されます。 指定した文字列のすべての出現箇所を削除するには、 RemoveAt(IndexOf(value)) を繰り返し使用しますが、 IndexOf は -1 を返しません。
指定したオブジェクトが StringCollection に含まれていない場合、 StringCollection は変更されません。 例外はスローされません。
リストなどの連続する要素のコレクションでは、削除された要素の後に続く要素が上に移動し、空いた場所を占有します。 コレクションにインデックスが付いている場合、移動される要素のインデックスも更新されます。 この動作は、要素が概念的にバケット (ハッシュ テーブルなど) にグループ化されるコレクションには適用されません。
このメソッドは、 Object.Equalsを呼び出すことによって等価性を決定します。 文字列比較では大文字と小文字が区別されます。
このメソッドは線形検索を実行します。したがって、このメソッドは O(n) 操作であり、 n は Count。