2009-03-20 3 views
1

Pouvons-nous faire quelque chose de similaire à List.Contains(myItem) afin de vérifier si une propriété sur un élément de la liste est égale à une propriété sur myItem.Est-il possible de gérer automatiquement List.Contains en comparant une propriété sur l'élément?

(Nous avons considéré Contains et Exists, quelque chose comme:

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

mais ne peut pas obtenir une simple expression.)

Nous voudrions quelque chose d'aussi simple que ce qui suit:

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

et cette méthode devrait retourner automagiquement vrai si au moins un élément orderLines[i] remplit:

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

Nous avons mis en place IEquatable<OrderLine> ce qui équivaut par la propriété Product, mais ne peut pas trouver la façon de procéder à partir de là.

Répondre

6

Utilisez-vous .NET 3.5? Si oui, utilisez LINQ:

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