Ich habe eine Frage zu Linq/Lambda und das folgende Problem:C# Wörterbücher schneiden
Ich habe zwei Wörterbücher, primäre und sekundäre ... Diese beiden Wörterbücher sind definiert als Key = String Value = int. Ich muss das primäre Wörterbuch verkleinern, wenn sich die KEYS mit dem sekundären Wörterbuch überschneiden.
dh:
primaryDict = ["thing1", 33] ["thing2", 24] ["thing3", 21] ["thing4", 17] ["thing5", 12]
secondaryDict = ["thing1", 22] ["thing3", 20] ["thing4", 19] ["thing7", 17] ["thing9", 10]
resultDict = ["thing1", 33] ["thing3", 21] ["thing4", 17]
Mein Versuch:
resultDict = primaryDict.Keys.Intersect(secondaryDict.Keys).ToDictionary(t => t.Key, t.Value);
Das ist offensichtlich nicht funktioniert, weil die primaryDict.Keys.Intersect eine Liste der Schlüssel der Rückkehr ... wie würde ich wieder herstellen einen neuen Wörterbuch oder paarweise das primäre Wörterbuch? Jede Hilfe wäre willkommen.
Ich denke, die letzte Version ist viel besser, als ich nicht glaube, das Wörterbuch als IEnumerable Behandlung wird das Wörterbuch nutzen, und wird in O laufen (n) Zeit. –
Das hat gut funktioniert für das was ich mache ... Ich habe die zweite Lösung benutzt und alles funktioniert wie erwartet. Du schaukelst Dave! –
Als Follow Up ... ist es möglich, die Werte in diesem Ausdruck zu summieren? –