Ich habe diesen Code, um einen Wert (Integer-Array) aus einem Wörterbuch abrufen Dann inkrementieren eines der Elemente innerhalb der Ganzzahl-Array basierend auf der if-Anweisung es ist ..mit TryGetValue von Schlüssel und Hinzufügen funktioniert nicht als intent
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;
}
nun das Problem, das ich habe ist, dass evertime ich das modifizierte OutOfDic Array zurück in das Wörterbuch in den Wert Teil lesen, wo ich den Schlüssel angegeben, wird jeder Wert im Wörterbuch als auch modifiziert, und zwar nicht nur den Schlüssel I angegeben. Der kommentierte Teil liefert das gleiche Ergebnis wie der nicht kommentierte Teil. Wie behebe ich dieses Problem, um den Wert nur dem angegebenen Schlüssel hinzuzufügen?
_ "wieder in" _? Du meinst _Write zurück in_? Sie erhöhen auch zwei Eingänge, nicht einen. Warum verwenden Sie 'TryGetValue' auch, wenn Sie sicher sind, dass der Schlüssel existiert? Sie behandeln nicht den Fall, dass ein Schlüssel nicht vorhanden ist. –
Danke für die Antwort. Ich lese die Teams (zB 6 Teams) in den Schlüssel des Arrays und mache den Wert (int [] TheArray) 0 .. Dann spielen die Teams. und immer wenn ein Team spielt. (Team One Win. Team Two verloren). Dann müssen die TeamOne P (Play) und W (Win) erhöht werden. TeamTwo P und L (Lost) müssen erhöht werden. deshalb tryGetValue. Ich möchte den Wert des gespielten Teams ermitteln und diese Werte erhöhen. dann schreibe (gemeint ist, schreibe) sie zu spezifizierten Wert where Schlüssel == TeamOne –