У меня есть этот код для извлечения значения (целочисленного массива) из словаря. Затем добавьте один из элементов внутри целочисленного массива на основе оператора if, в котором он находится.с помощью TryGetValue из ключа и добавление не работает как интенсивно
Dictionary<string, int[]> ResultDic = new Dictionary<string, int[]>();
if (TeamOnePoint > TeamTwoPoint)
{
ResultDic.TryGetValue(TeamOneResult, out OutOfDic);
OutOfDic[0]++;
OutOfDic[1]++;
////ResultDic.Remove(TeamOneResult);
////ResultDic.Add(TeamOneResult, OutOfDic);
ResultDic[TeamOneResult] = OutOfDic;;
ResultDic.TryGetValue(TeamTwoResult, out OutOfDic);
OutOfDic[0]++;
OutOfDic[2]++;
////ResultDic.Remove(TeamTwoResult);
////ResultDic.Add(TeamTwoResult, OutOfDic);
ResultDic[TeamTwoResult] = OutOfDic;
}
Теперь проблема у меня есть, что evertime я прочитал измененный OutOfDic массив обратно в словарь в стоимость части, где я указал ключ, каждое значение в словаре модифицируется, а также, и не только ключ я указано. Прокомментированная часть дает тот же результат, что и без комментариев. Как исправить эту проблему, чтобы добавить значение только к указанному ключу?
_ "читать обратно в" _? Вы имеете в виду _write обратно в_? Вы также увеличиваете два ints не один. Кроме того, почему вы используете 'TryGetValue', если вы уверены, что ключ существует? Вы не справляетесь с тем, что ключа нет. –
Благодарим вас за ответ. Я прочитал команды (например, 6 команд) в ключ массива и сделал значение (int [] TheArray) 0 .. Затем команды играют. и каждый раз, когда команда играет. (TeamOne Win. TeamTwo Lost). то командаOne P (Play) и W (Win) должны увеличиваться. TeamTwo P и L (Lost) должны увеличиваться. поэтому я TryGetValue. Я хочу, чтобы ценность команды играла и увеличивала эти значения. затем напишите (значит, напишите) их на указанное значение, где key == TeamOne –