Ich habe zufällig Code gesehen, wo dieser Typ einen Lambda-Ausdruck an eine ArrayList.Sort (IComparer hier) oder eine IEnumerable.SequenceEqual (IEnumerable Liste, IEqualityComparer hier) übergeben hat, wo ein IComparer oder IEqualityComparer erwartet wurde.Übergeben Sie einen Lambda-Ausdruck anstelle von IComparer oder IEqualityComparer oder einer anderen Methode-Schnittstelle?
Ich kann nicht sicher sein, ob ich es sah, oder ich träume nur. Und ich kann anscheinend keine Erweiterung für eine dieser Sammlungen finden, die eine Func <> oder einen Delegaten in ihren Methodensignaturen akzeptiert.
Gibt es eine solche Überladungs-/Erweiterungsmethode? Oder, wenn nicht, ist es möglich, so herumzureißen und einen Algorithmus (Lese-Delegat) zu übergeben, wo eine Schnittstelle mit einer einzigen Methode erwartet wird?
Aktualisieren Danke, jeder. Das ist was ich dachte. Ich muss geträumt haben. Ich weiß, wie man eine Konvertierung schreibt. Ich war mir nur nicht sicher, ob ich so etwas gesehen oder gedacht hatte, ich hätte es gesehen.
Noch ein Update Schauen Sie, hier habe ich eine solche Instanz gefunden. Ich habe nicht geträumt. Schauen Sie sich what this guy is doing here an. Was gibt?
Und hier ist ein weiteres Update: Ok, ich verstehe. Der Typ benutzt die Comparison<T>
Überladung. Nett. Nett, aber total anfällig, um dich in die Irre zu führen. Guter Gedanke. Vielen Dank.
mögliches Duplikat von [Wrap einen Delegaten in einem IEqualityComparer] (http://stackoverflow.com/questions/98033/wrap-a-delegate-in-an-iequalitycomparer) – nawfal
@ Nawfal: Das ist eine andere Frage. Sie sind etwas verwandt, aber immer noch anders. Das ist eine sehr schöne Frage. Danke für das Teilen. Ich fand es sehr interessant. :-) –
Ach ja, ich sehe jetzt, aber sehr nahe: P Ich habe die enge Abstimmung zurückgezogen, aber ich werde den Kommentar behalten, damit andere Besucher bemerken. Eine Sache, bitte akzeptiere Antworten. Ich denke, dass die am besten gewählte Antwort Ihre Frage beantwortet. – nawfal