Просто используйте индексатор - он перезапишет, если он уже там, но у него нет , чтобы быть там первым:
Dictionary<string, object> currentViews = new Dictionary<string, object>();
currentViews["Customers"] = "view1";
currentViews["Customers"] = "view2";
currentViews["Employees"] = "view1";
currentViews["Reports"] = "view1";
В основном используйте Add
, если существуетключа указывает на ошибку (так что вы хотите, чтобы он выкинул) и индексатор в противном случае. (Это немного похоже на разницу между приведением и использованием as
для преобразования ссылок.)
Если вы используете C # 3 , и у вас есть отдельный набор ключей , вы можете сделатьэто даже аккуратнее:
var currentViews = new Dictionary<string, object>()
{
{ "Customers", "view2" },
{ "Employees", "view1" },
{ "Reports", "view1" },
};
Это не сработает в вашем случае, хотя, поскольку инициализаторы коллекции всегда используют Add
, который выбрасывает вторую запись Customers
.