Лучший способ добавить новую пару значений ключей в словарь, если ее еще не существует, а значение увеличения, если оноC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Лучший способ добавить новую пару значений ключей в словарь, если ее еще не существует, а значение увеличения, если оно

Сообщение Anonymous »

Попытка выяснить «лучший» способ написать код для следующего сценария. Скажем, у меня есть следующий словарный объект < /p>
Dictionary myDict = new Dictionary()
< /code>
Я собираюсь пройти через слово и добавить входы букв в слово в словарь. Каждый раз, когда я сталкиваюсь с новой буквой (новым ключом), я хочу добавить ее со значением init 1, в противном случае, если буква уже является ключом в словаре, я хочу увеличить ее на 1. Я придумал несколько вариантов, но мне было интересно Если это «лучший» или «правильный» способ сделать это.

примеры будут использовать строку < /p>
string word = "aaabbc";
< /code>
опция 1 < /p>
foreach(char ltr in word){
if (myDict.ContainsKey(ltr) {
myDict[ltr] +=1;
} else {
myDict[ltr] = 1;
}
< /code>
опция 2 < /p>
foreach(char ltr in word){
try {
myDict.Add(ltr, 1);
} catch(Exception){
myDict[ltr] += 1;
}
}
< /code>
опция 3 < /p>
foreach(char ltr in word){
int dummy = myDict.ContainsKey(ltr) ? myDict[ltr] += 1 : myDict[ltr] = 1
}
< /code>
Вариант 1 кажется самым основным, просто проверьте, существует ли ключ, и сделайте то, что нужно сделать в зависимости от результата. Вариант 2 интересен, мне интересно, может ли он отличаться оптимальным образом, может быть, быстрее или медленнее. Вариант 3 кажется самым кратким, но мне не нравится, как ему нужна фиктивная int value, просто чтобы выполнить то, что я хочу сделать (возможно, я здесь не неправильно использую). < /P>
Итак, какой из этих 3 - «Лучший» или мне не хватает другого?


Подробнее здесь: https://stackoverflow.com/questions/794 ... ready-exis
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»