Ich versuche, alle Schlüssel in einem Wörterbuch zu finden, die nicht in einem anderen Wörterbuch sind. Natürlich kann ich dies mit einer verschachtelten Schleife tun, aber ich versuche gerade, LINQ zu lernen, und ich frage mich, ob ich es benutzen könnte, um diese Aufgabe zu erledigen?
Folgendes habe ich bisher:
%Vor%Irgendeine Idee, was anstelle der Fragezeichen (oder vielleicht anstelle der gesamten where-Klausel) gehen sollte?
Sie können:
%Vor% Die Methode Except()
entspricht im Wesentlichen der Methode minus
Operationen in SQL - es gibt alle Elemente aus der ersten Sammlung zurück, mit Ausnahme der Elemente in der zweiten. Da Wörterbücher ihre Schlüssel offen legen, können Sie ihren Unterschied auf diese Weise berechnen.
Der Operator Except()
verwendet die Standardgleichheit für den Typ, aber es gibt auch eine Überladung, mit der Sie Ihren eigenen IEqualityComparer angeben können, um die Semantik des Vergleichs von Werten zu überschreiben. In Ihrem Beispiel brauchen Sie das wahrscheinlich nicht - aber es ist schön, es dort zu wissen.