Они эквивалентны для вашего использования, в данном случае, запустив это:
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"
) выдаст ошибку повторяющейся записи.