Ist es möglich, durch Vergleich einer Eigenschaft auf das Element, um automatisch List.Contains zu behandeln?
-
21-08-2019 - |
Frage
Können wir etwas ähnliches tun, um List.Contains(myItem)
zu überprüfen, ob eine Eigenschaft auf ein Element in der Liste eine Eigenschaft auf myItem
entspricht.
(Wir haben als Contains
und Exists
, so etwas wie:
if (orderLines.Contains(myLine)) { ... }
kann aber nicht einen einfachen Ausdruck bekommen.)
Wir möchten etwas so einfaches wie folgt:
if (orderLines.[MethodName](myLine)) { }
und diese Methode sollte automagically true zurück, wenn mindestens ein Element orderLines[i]
erfüllt:
myLine.Product.Equals(orderLines[i].Product)
Wir umgesetzt haben IEquatable<OrderLine>
, die von der Product
Eigenschaft entspricht, aber nicht finden können, wie von dort aus gehen.
Lösung
Sind Sie mit .NET 3.5? Wenn ja, verwendet LINQ:
if (orderLines.Any(order => order.Product == myLine.Product))
{
...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow