StringCollection 内で最初に見つかった指定文字列を削除します。
名前空間: System.Collections.Specialized
アセンブリ: System (system.dll 内)
構文
'宣言
Public Sub Remove ( _
value As String _
)
'使用
Dim instance As StringCollection
Dim value As String
instance.Remove(value)
public void Remove (
string value
)
public:
void Remove (
String^ value
)
public void Remove (
String value
)
public function Remove (
value : String
)
パラメータ
- value
StringCollection から削除する文字列。値は null 参照 (Visual Basic では Nothing) に設定できます。
解説
StringCollection では、文字列を重複して使用できます。最初に見つかった文字列だけが削除されます。指定した文字列と一致したすべての文字列を削除するには、IndexOf が -1 を返すまで、繰り返し RemoveAt(IndexOf(value)) を使用します。
指定したオブジェクトが StringCollection に格納されていない場合、StringCollection は変更されません。例外はスローされません。
リストなどの連続する要素のコレクションでは、空白になった位置を埋めるために、削除された要素の後にある要素の位置が繰り上げられます。インデックス付きのコレクションの場合は、移動した要素のインデックスも更新されます。この動作は、要素が概念的にバケットにグループ化されているハッシュ テーブルなどのコレクションには適用されません。
このメソッドは、Object.Equals を呼び出して、等しいかどうかを判断します。文字列比較では、大文字と小文字が区別されます。
このメソッドは順次検索を実行します。したがって、このメソッドは、O(n) 操作です。ここで、n は Count です。
使用例
StringCollection から要素を削除する例を次に示します。
Imports System
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 'Main
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 'PrintValues
End Class 'SamplesStringCollection
'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:
'
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:
*/
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintValues( IEnumerable^ myCol );
int main()
{
// Creates and initializes a new StringCollection.
StringCollection^ myCol = gcnew StringCollection;
array<String^>^myArr = {"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 );
}
void PrintValues( IEnumerable^ myCol )
{
IEnumerator^ myEnum = myCol->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
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:
*/
import System.* ;
import System.Collections.* ;
import System.Collections.Specialized.* ;
public class SamplesStringCollection
{
public static void main(String[] args)
{
// 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);
} //main
public static void PrintValues(IEnumerable myCol)
{
Object obj = null;
IEnumerator objEnum = myCol.GetEnumerator();
while (objEnum.MoveNext()) {
obj = objEnum.get_Current();
Console.WriteLine(" {0}", obj);
}
Console.WriteLine();
} //PrintValues
} //SamplesStringCollection
/*
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:
*/
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
参照
関連項目
StringCollection クラス
StringCollection メンバ
System.Collections.Specialized 名前空間