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?