3 Stimmen

VB zu C# Konvertierung Inkongruenz mit Lambdas

Ich habe ein bisschen Code, die ich mit der Umwandlung in C# von VB beauftragt wurden. Ein Schnipsel von mir scheint, wie es kann nicht von einem zum anderen konvertiert werden, und wenn ja, ich weiß einfach nicht, wie es zu tun und bin immer ein wenig frustriert.

Hier ein paar Hintergrundinformationen:

OrderForm ist ein abstract Klasse, geerbt von Invoice (und auch PurchaseOrder ). Das folgende VB-Snippet funktioniert korrekt:

Dim Invs As List(Of OrderForm) = GetForms(theOrder.OrderID)
....
Dim inv As Invoice = Invs.Find(
    Function(someInv As Invoice) thePO.SubPONumber = someInv.SubInvoiceNumber)

In C# konnte ich dies am besten umsetzen:

List<OrderForm> Invs = GetForms(theOrder.OrderID);
....
Invoice inv = Invs.Find(
    (Invoice someInv) => thePO.SubPONumber == someInv.SubInvoiceNumber);

Allerdings erhalte ich dabei die folgende Fehlermeldung:

Lambda-Ausdruck kann nicht in den Delegatentyp 'System.Predicate' konvertiert werden, da die Parametertypen nicht mit den Delegatparametertypen übereinstimmen

Gibt es eine Möglichkeit, dies zu beheben, ohne meine gesamte Codebasis umzustrukturieren?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X