Производительность myCollection.Add() по сравнению с.мояКоллекция[“ключ”]

StackOverflow https://stackoverflow.com/questions/2509412

Вопрос

Есть ли разница между использованием метода Add() и его прямым назначением при работе с коллекцией пар ключ/значение?

Например, HtmlGenericControl будет иметь коллекцию атрибутов:

var anchor = new HtmlGenericControl("a");

// These both work:
anchor.Attributes.Add("class", "xyz");
anchor.Attributes["class"] = "xyz";

Это просто вопрос предпочтений или есть причина делать то или иное?

Это было полезно?

Решение

Они эквивалентны для вашего использования, в данном случае выполните следующее:

anchor.Attributes["class"] = "xyz";

На самом деле вызывает это внутри:

anchor.Attributes.Add("class", "xyz");

В AttributeCollection тот this[string key] сеттер выглядит так:

public string this[string key]
{
  get { }
  set { this.Add(key, value); }
}

Итак, чтобы ответить на вопрос, в случае AttributeCollection, это просто вопрос предпочтений.Имейте в виду, что это не относится к другим типам коллекций, например Dictionary<T, TValue>.В этом случае ["class"] = "xyz" обновит или установит значение, где .Add("class", "xyz") (если он уже был "class" запись) выдаст двойную ошибку записи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top