2009-03-20 9 views
1

Können wir etwas Ähnliches wie List.Contains(myItem) tun, um zu prüfen, ob eine Eigenschaft auf einem Element in der Liste einer Eigenschaft auf myItem entspricht.Ist es möglich, List.Contains automatisch zu behandeln, indem Sie eine Eigenschaft des Elements vergleichen?

(Wir haben als Contains und Exists, so etwas wie:

 
if (orderLines.Contains(myLine)) { ... } 

kann aber nicht einen einfachen Ausdruck bekommen.)

Wir etwas so Einfaches wie die folgende möchten:

 
if (orderLines.[MethodName](myLine)) 
{ 
} 

und diese Methode sollte automatisch true zurückgeben, wenn mindestens ein Element orderLines[i] erfüllt:

 
myLine.Product.Equals(orderLines[i].Product) 

Wir haben IEquatable<OrderLine> implementiert, die von der Product Eigenschaft entspricht, aber nicht finden können, wie von dort aus gehen.

Antwort

6

Verwenden Sie .NET 3.5? Wenn ja, verwenden Sie LINQ:

if (orderLines.Any(order => order.Product == myLine.Product)) 
{ 
    ... 
}