私Collection.Addのパフォーマンス()へ。私のコレクション[「キー」]
-
22-09-2019 - |
質問
キー/値ペアのコレクションを扱う
は、その追加()メソッドを使用して直接
を割り当てるとの間の差がありますは例えば、HtmlGenericControlは、コレクションの属性があります
var anchor = new HtmlGenericControl("a");
// These both work:
anchor.Attributes.Add("class", "xyz");
anchor.Attributes["class"] = "xyz";
これは純粋に好みの問題です、または1つまたは他のを行う理由?
があります解決
彼らは、この実行している、この場合には、ご使用のために同等です
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"
エントリを持っていた場合)、重複入力エラーをスローしていました値を、更新または設定します。
所属していません StackOverflow