Ich habe 2 Listenobjekte vom Typ einer Klasse,
%Vor%Jetzt muss ich alle IDs von "pr" ListObject bekommen, das keinen Eintrag oder ungerade Anzahl an Einträgen im hat > "tem" ListObejct. mit Lamda.
Dafür habe ich verwendet,
%Vor%und es funktioniert gut.
aber Sie können aus dem Code sehen, dass ich zweimal tem.FindAll (t = & gt; t.id == p) .Count verwendet habe, um mit == 0 und % 2! = 0 .
Gibt es eine Möglichkeit, tem.FindAll (t = & gt; t.id == p) .Count einmal zu verwenden Speichern Sie es in einer temporären Variablen und vergleichen Sie dann diese Variable mit == 0 und % 2! = 0 .
Einfacher möchte ich es nur einmal für zwei Bedingungen hier verwenden.
Verwenden Sie eine Anweisung Lambda anstelle eines Ausdrucks Lambda
%Vor%Neben der Anweisung lambda können Sie die Klausel let verwenden:
%Vor%Nebenbei gesagt, würden Sie, rein leistungsmäßig, eine bessere Leistung erzielen, wenn Sie eine Hash-Zuordnung für jede ID zu ihrer Zählung erstellen und sie dann in einer Schleife durchsuchen.
Im Moment haben Sie einen O(n*m)
-Algorithmus, der auf O(n+m)
reduziert werden würde: