Question

En traitant avec une collection de paires clé / valeur est-il une différence entre l'utilisation de sa méthode Add () et en attribuant directement il?

Par exemple, un HtmlGenericControl aura une Attributs Collection:

var anchor = new HtmlGenericControl("a");

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

est-il purement une question de préférence, ou est-il une raison de faire l'un ou l'autre?

Était-ce utile?

La solution

Ils sont équivalents pour votre usage, dans ce cas, l'exécution de ce:

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

En fait, cette demande interne:

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

Dans AttributeCollection le poseur de this[string key] ressemble à ceci:

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

Donc, pour répondre à la question, dans le cas de AttributeCollection , il est juste une question de préférence. Gardez à l'esprit, ce n'est pas vrai pour d'autres types de collections, par exemple Dictionary<T, TValue>. Dans ce cas ["class"] = "xyz" mettrait à jour ou définir la valeur, où .Add("class", "xyz") (si elle avait déjà une entrée "class") jetterait une erreur d'entrée en double.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top