Desempenho para myCollection.add () vs. myCollection ["key"
-
22-09-2019 - |
Pergunta
Ao lidar com uma coleção de pares de chave/valor, há alguma diferença entre usar o método add () e atribuí -lo diretamente?
Por exemplo, um HTMLGenericControl terá uma coleção de atributos:
var anchor = new HtmlGenericControl("a");
// These both work:
anchor.Attributes.Add("class", "xyz");
anchor.Attributes["class"] = "xyz";
É puramente uma questão de preferência, ou há uma razão para fazer um ou outro?
Solução
Eles são equivalentes ao seu uso, neste caso, executando o seguinte:
anchor.Attributes["class"] = "xyz";
Na verdade, chama isso internamente:
anchor.Attributes.Add("class", "xyz");
Dentro AttributeCollection
a this[string key]
Setter se parece com o seguinte:
public string this[string key]
{
get { }
set { this.Add(key, value); }
}
Então, para responder à pergunta, no caso de AttributeCollection
, é apenas uma questão de preferência. Lembre -se, isso não é verdade para outros tipos de coleção, por exemplo Dictionary<T, TValue>
. Nesse caso ["class"] = "xyz"
atualizaria ou definiria o valor, onde .Add("class", "xyz")
(se já tivesse um "class"
entrada) lançaria um erro de entrada duplicado.