Définit la valeur de la première entrée contenant la clé spécifiée dans l'instance de NameObjectCollectionBase, le cas échéant ; sinon, ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance de NameObjectCollectionBase.
Assembly : System (dans System.dll)
Protected Sub BaseSet ( _ name As String, _ value As Object _ )
protected void BaseSet( string name, Object value )
protected: void BaseSet( String^ name, Object^ value )
member BaseSet : name:string * value:Object -> unit
Paramètres
- name
- Type : System.String
Clé String de l'entrée à définir. La clé peut être null.
- value
- Type : System.Object
Object qui représente la nouvelle valeur de l'entrée à définir. La valeur peut être null.
| Exception | Condition |
|---|---|
| NotSupportedException |
La collection est en lecture seule. |
Si la collection contient plusieurs entrées avec la clé spécifiée, cette méthode définit uniquement la première entrée. Pour définir les valeurs des entrées suivantes avec la même clé, utilisez l'énumérateur pour itérer au sein de la collection et comparer les clés.
Cette méthode est une opération O(1).
L'exemple de code suivant utilise BaseSet pour définir la valeur d'un élément spécifique.
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class MyCollection Inherits NameObjectCollectionBase ' Gets or sets the value at the specified index. Default Public Property Item(index As Integer) As [Object] Get Return Me.BaseGet(index) End Get Set Me.BaseSet(index, value) End Set End Property ' Gets or sets the value associated with the specified key. Default Public Property Item(key As [String]) As [Object] Get Return Me.BaseGet(key) End Get Set Me.BaseSet(key, value) End Set End Property ' Gets a String array that contains all the keys in the collection. Public ReadOnly Property AllKeys() As [String]() Get Return Me.BaseGetAllKeys() 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 'New End Class 'MyCollection 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:") PrintKeysAndValues2(myCol) Console.WriteLine() ' Sets the value at index 1. myCol(1) = "sunflower" Console.WriteLine("After setting the value at index 1:") PrintKeysAndValues2(myCol) Console.WriteLine() ' Sets the value associated with the key "red". myCol("red") = "tulip" Console.WriteLine("After setting the value associated with the key ""red"":") PrintKeysAndValues2(myCol) End Sub 'Main Public Shared Sub PrintKeysAndValues2(myCol As MyCollection) Dim s As [String] For Each s In myCol.AllKeys Console.WriteLine("{0}, {1}", s, myCol(s)) Next s End Sub 'PrintKeysAndValues2 End Class 'SamplesNameObjectCollectionBase 'This code produces the following output. ' 'Initial state of the collection: 'red, apple 'yellow, banana 'green, pear ' 'After setting the value at index 1: 'red, apple 'yellow, sunflower 'green, pear ' 'After setting the value associated with the key "red": 'red, tulip 'yellow, sunflower 'green, pear
using System; using System.Collections; using System.Collections.Specialized; public class MyCollection : NameObjectCollectionBase { // Gets or sets the value at the specified index. public Object this[ int index ] { get { return( this.BaseGet( index ) ); } set { this.BaseSet( index, value ); } } // Gets or sets the value associated with the specified key. public Object this[ String key ] { get { return( this.BaseGet( key ) ); } set { this.BaseSet( key, value ); } } // Gets a String array that contains all the keys in the collection. public String[] AllKeys { get { return( this.BaseGetAllKeys() ); } } // 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 ); } } } 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:" ); PrintKeysAndValues2( myCol ); Console.WriteLine(); // Sets the value at index 1. myCol[1] = "sunflower"; Console.WriteLine( "After setting the value at index 1:" ); PrintKeysAndValues2( myCol ); Console.WriteLine(); // Sets the value associated with the key "red". myCol["red"] = "tulip"; Console.WriteLine( "After setting the value associated with the key \"red\":" ); PrintKeysAndValues2( myCol ); } public static void PrintKeysAndValues2( MyCollection myCol ) { foreach ( String s in myCol.AllKeys ) { Console.WriteLine( "{0}, {1}", s, myCol[s] ); } } } /* This code produces the following output. Initial state of the collection: red, apple yellow, banana green, pear After setting the value at index 1: red, apple yellow, sunflower green, pear After setting the value associated with the key "red": red, tulip yellow, sunflower green, pear */
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; public ref class MyCollection : public NameObjectCollectionBase { // Gets or sets the value at the specified index. public: property Object^ default[ int ] { Object^ get(int index) { return( this->BaseGet( index ) ); } void set( int index, Object^ value ) { this->BaseSet( index, value ); } } // Gets or sets the value associated with the specified key. property Object^ default[ String^ ] { Object^ get(String^ key) { return( this->BaseGet( key ) ); } void set( String^ key, Object^ value ) { this->BaseSet( key, value ); } } // Gets a String array that contains all the keys in the collection. property array<String^>^ AllKeys { array<String^>^ get() { return( this->BaseGetAllKeys() ); } } // Adds elements from an IDictionary into the new collection. MyCollection( IDictionary^ d ) { for each ( DictionaryEntry^ de in d ) { this->BaseAdd( (String^) de->Key, de->Value ); } } }; 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:" ); PrintKeysAndValues2( myCol ); Console::WriteLine(); // Sets the value at index 1. myCol[1] = "sunflower"; Console::WriteLine( "After setting the value at index 1:" ); PrintKeysAndValues2( myCol ); Console::WriteLine(); // Sets the value associated with the key "red". myCol["red"] = "tulip"; Console::WriteLine( "After setting the value associated with the key \"red\":" ); PrintKeysAndValues2( myCol ); } static void PrintKeysAndValues2( MyCollection^ myCol ) { for each ( String^ s in myCol->AllKeys ) { Console::WriteLine( "{0}, {1}", s, myCol[s] ); } } }; int main() { SamplesNameObjectCollectionBase::Main(); } /* This code produces the following output. Initial state of the collection: red, apple yellow, banana green, pear After setting the value at index 1: red, apple yellow, sunflower green, pear After setting the value associated with the key "red": red, tulip yellow, sunflower green, pear */
.NET Framework
Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Pris en charge dans : 4, 3.5 SP1Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.