Прочитать на английском

Поделиться через


NameObjectCollectionBase.BaseAdd(String, Object) Метод

Определение

Добавляет запись с указанным ключом и значением в экземпляр класса NameObjectCollectionBase.

protected void BaseAdd (string name, object value);
protected void BaseAdd (string? name, object? value);

Параметры

name
String

Добавляемый ключ записи String. Значением ключа может быть null.

value
Object

Добавляемое значение записи Object. Допускается значение null.

Исключения

Коллекция только для чтения.

Примеры

В следующем примере кода используется BaseAdd для создания объекта NameObjectCollectionBase с элементами из IDictionary.

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 );
      }
   }
}

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 );

      // Displays the keys and values of the MyCollection instance.
      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.

[0] : red, apple
[1] : yellow, banana
[2] : green, pear

*/

Комментарии

Если Count емкость уже равна, емкость увеличивается путем автоматического NameObjectCollectionBase перераспределения внутреннего массива, а существующие элементы копируются в новый массив перед добавлением нового элемента.

Если Count меньше емкости, этот метод является операцией O(1). Если емкость необходимо увеличить для размещения нового элемента, этот метод становится операцией O(n), где n имеет значение Count.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0