Gibt es eine effizientere Möglichkeit, mehrere Wörterbücher zu einem zusammenzufassen, und wenn es einen doppelten Schlüssel gibt, dann addieren Sie die Werte zusammen? Die Wörterbücher haben mindestens 10000 Schlüssel-Wert-Paare.Mehrere Wörterbücher zusammenfassen, zusammen Werte hinzufügen
Dictionary<string, int>[] res;
Dictionary<string, int> aggregatedRes = res[0];
for (int i = 1; i < res.Length; i++)
{
foreach (KeyValuePair<string, int> valuePair in res[i])
{
if (aggregatedRes.ContainsKey(valuePair.Key))
{
aggregatedRes[valuePair.Key] += valuePair.Value;
}
else
{
aggregatedRes.Add(valuePair.Key, valuePair.Value);
}
}
}
fand ich viel Post auf Stackoverflow mit ähnlicher Frage, aber es, wenn es ein doppelter Schlüssel, sie fallen nur einen Wert davon, die nicht gut für mich ist.
Dictionary 1
apple - 2
an - 1
I - 1
like - 3
Dictionary 2
apple - 3
car - 1
green - 1
Dictionary 3
apple - 1
green - 1
like - 1
Expected result:
apple - 6
an - 1
I - 1
like - 4
car - 1
green - 2
'Ich fand eine Menge von Post auf Stackoverflow mit ähnlicher Frage, aber dort, wenn es einen doppelten Schlüssel gab, fallen sie nur einen Wert von es ". Also, können Sie sie nicht ändern, um zusammenzufassen .... –
leider nicht, wenn ich es tun kann, frage ich nicht, wie man macht – golddragon007
OK Dann, wie wäre es mit der Veröffentlichung eines kompilierbaren Code und zeigt Ihr Problem .. " Ein Compilabe-Code + Sample-Eingabe + Was Sie erhalten + Erwartete Ausgabe ". –