Ist es möglich, durch Vergleich einer Eigenschaft auf das Element, um automatisch List.Contains zu behandeln?

StackOverflow https://stackoverflow.com/questions/665713

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.

War es hilfreich?

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
scroll top