NameObjectCollectionBase.BaseRemove(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したキーを持つエントリを NameObjectCollectionBase インスタンスから削除します。
protected:
void BaseRemove(System::String ^ name);
protected void BaseRemove (string name);
protected void BaseRemove (string? name);
member this.BaseRemove : string -> unit
Protected Sub BaseRemove (name As String)
パラメーター
例外
コレクションは読み取り専用です。
例
次のコード例では、 と BaseRemoveAt を使用BaseRemoveして から要素をNameObjectCollectionBase削除します。
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
public ref class MyCollection : public NameObjectCollectionBase {
private:
DictionaryEntry^ _de;
// Gets a key-and-value pair (DictionaryEntry) using an index.
public:
property DictionaryEntry^ default[ int ] {
DictionaryEntry^ get(int index) {
_de->Key = this->BaseGetKey( index );
_de->Value = this->BaseGet( index );
return( _de );
}
}
// Adds elements from an IDictionary into the new collection.
MyCollection( IDictionary^ d ) {
_de = gcnew DictionaryEntry();
for each ( DictionaryEntry^ de in d ) {
this->BaseAdd( (String^) de->Key, de->Value );
}
}
// Removes an entry with the specified key from the collection.
void Remove( String^ key ) {
this->BaseRemove( key );
}
// Removes an entry in the specified index from the collection.
void Remove( int index ) {
this->BaseRemoveAt( index );
}
};
public ref class SamplesNameObjectCollectionBase {
public:
static void Main() {
// Creates and initializes a new MyCollection instance.
IDictionary^ d = gcnew ListDictionary();
d->Add( "red", "apple" );
d->Add( "yellow", "banana" );
d->Add( "green", "pear" );
MyCollection^ myCol = gcnew MyCollection( d );
Console::WriteLine( "Initial state of the collection (Count = {0}):", myCol->Count );
PrintKeysAndValues( myCol );
// Removes an element at a specific index.
myCol->Remove( 1 );
Console::WriteLine( "After removing the element at index 1 (Count = {0}):", myCol->Count );
PrintKeysAndValues( myCol );
// Removes an element with a specific key.
myCol->Remove( "red" );
Console::WriteLine( "After removing the element with the key \"red\" (Count = {0}):", myCol->Count );
PrintKeysAndValues( myCol );
}
static void PrintKeysAndValues( MyCollection^ myCol ) {
for ( int i = 0; i < myCol->Count; i++ ) {
Console::WriteLine( "[{0}] : {1}, {2}", i, myCol[i]->Key, myCol[i]->Value );
}
}
};
int main()
{
SamplesNameObjectCollectionBase::Main();
}
/*
This code produces the following output.
Initial state of the collection (Count = 3):
[0] : red, apple
[1] : yellow, banana
[2] : green, pear
After removing the element at index 1 (Count = 2):
[0] : red, apple
[1] : green, pear
After removing the element with the key "red" (Count = 1):
[0] : green, pear
*/
using System;
using System.Collections;
using System.Collections.Specialized;
public class MyCollection : NameObjectCollectionBase {
private DictionaryEntry _de = new DictionaryEntry();
// Gets a key-and-value pair (DictionaryEntry) using an index.
public DictionaryEntry this[ int index ] {
get {
_de.Key = this.BaseGetKey( index );
_de.Value = this.BaseGet( index );
return( _de );
}
}
// Adds elements from an IDictionary into the new collection.
public MyCollection( IDictionary d ) {
foreach ( DictionaryEntry de in d ) {
this.BaseAdd( (String) de.Key, de.Value );
}
}
// Removes an entry with the specified key from the collection.
public void Remove( String key ) {
this.BaseRemove( key );
}
// Removes an entry in the specified index from the collection.
public void Remove( int index ) {
this.BaseRemoveAt( index );
}
}
public class SamplesNameObjectCollectionBase {
public static void Main() {
// Creates and initializes a new MyCollection instance.
IDictionary d = new ListDictionary();
d.Add( "red", "apple" );
d.Add( "yellow", "banana" );
d.Add( "green", "pear" );
MyCollection myCol = new MyCollection( d );
Console.WriteLine( "Initial state of the collection (Count = {0}):", myCol.Count );
PrintKeysAndValues( myCol );
// Removes an element at a specific index.
myCol.Remove( 1 );
Console.WriteLine( "After removing the element at index 1 (Count = {0}):", myCol.Count );
PrintKeysAndValues( myCol );
// Removes an element with a specific key.
myCol.Remove( "red" );
Console.WriteLine( "After removing the element with the key \"red\" (Count = {0}):", myCol.Count );
PrintKeysAndValues( myCol );
}
public static void PrintKeysAndValues( MyCollection myCol ) {
for ( int i = 0; i < myCol.Count; i++ ) {
Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value );
}
}
}
/*
This code produces the following output.
Initial state of the collection (Count = 3):
[0] : red, apple
[1] : yellow, banana
[2] : green, pear
After removing the element at index 1 (Count = 2):
[0] : red, apple
[1] : green, pear
After removing the element with the key "red" (Count = 1):
[0] : green, pear
*/
Imports System.Collections
Imports System.Collections.Specialized
Public Class MyCollection
Inherits NameObjectCollectionBase
Private _de As New DictionaryEntry()
' Gets a key-and-value pair (DictionaryEntry) using an index.
Default Public ReadOnly Property Item(index As Integer) As DictionaryEntry
Get
_de.Key = Me.BaseGetKey(index)
_de.Value = Me.BaseGet(index)
Return _de
End Get
End Property
' Adds elements from an IDictionary into the new collection.
Public Sub New(d As IDictionary)
Dim de As DictionaryEntry
For Each de In d
Me.BaseAdd(CType(de.Key, [String]), de.Value)
Next de
End Sub
' Removes an entry with the specified key from the collection.
Overloads Public Sub Remove(key As [String])
Me.BaseRemove(key)
End Sub
' Removes an entry in the specified index from the collection.
Overloads Public Sub Remove(index As Integer)
Me.BaseRemoveAt(index)
End Sub
End Class
Public Class SamplesNameObjectCollectionBase
Public Shared Sub Main()
' Creates and initializes a new MyCollection instance.
Dim d = New ListDictionary()
d.Add("red", "apple")
d.Add("yellow", "banana")
d.Add("green", "pear")
Dim myCol As New MyCollection(d)
Console.WriteLine("Initial state of the collection (Count = {0}):", myCol.Count)
PrintKeysAndValues(myCol)
' Removes an element at a specific index.
myCol.Remove(1)
Console.WriteLine("After removing the element at index 1 (Count = {0}):", myCol.Count)
PrintKeysAndValues(myCol)
' Removes an element with a specific key.
myCol.Remove("red")
Console.WriteLine("After removing the element with the key ""red"" (Count = {0}):", myCol.Count)
PrintKeysAndValues(myCol)
End Sub
Public Shared Sub PrintKeysAndValues(myCol As MyCollection)
Dim i As Integer
For i = 0 To myCol.Count - 1
Console.WriteLine("[{0}] : {1}, {2}", i, myCol(i).Key, myCol(i).Value)
Next i
End Sub
End Class
'This code produces the following output.
'
'Initial state of the collection (Count = 3):
'[0] : red, apple
'[1] : yellow, banana
'[2] : green, pear
'After removing the element at index 1 (Count = 2):
'[0] : red, apple
'[1] : green, pear
'After removing the element with the key "red" (Count = 1):
'[0] : green, pear
注釈
に NameObjectCollectionBase 指定したキーを持つ要素が含まれていない場合、 NameObjectCollectionBase は変更されません。 例外はスローされません。
リストなどの連続する要素のコレクションでは、空白になった位置を埋めるために、削除された要素の後にある要素の位置が繰り上げられます。 コレクションにインデックスがある場合、移動した要素のインデックスも更新されます。 この動作は、要素が概念的にバケットにグループ化されているハッシュ テーブルなどのコレクションには適用されません。
このメソッドは O(n
) 操作です。n
は Count です。
適用対象
こちらもご覧ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET