web-dev-qa-db-fra.com

Rechercher un élément dans une liste générique en spécifiant plusieurs conditions

Le plus souvent nous trouvons une liste générique avec un code comme:

CartItem Item = Items.Find(c => c.ProductID == ProductID);
Item.Quantity = Quantity;
Item.Price = Price;

Ainsi, le code ci-dessus trouve et met à jour d'autres données, mais si je veux rechercher plusieurs conditions, comment puis-je écrire le code?

Je veux écrire du code comme:

CartItem Item = Items.Find(c => c.ProductID == ProductID and c.ProductName == "ABS001");

Veuillez me guider pour plusieurs conditions lorsque nous trouvons une liste générique.

13
Thomas

Essaye ça: 

CartItem Item = Items.Find(c => (c.ProductID == ProductID) && (c.ProductName == "ABS001"));
48
Anton Sizikov

Essaye ça:

Items.Find(c => c.ProductID == ProductID && c.ProductName == "ABS001");

Le corps de l'expression lambda n'est qu'une méthode. Vous pouvez y utiliser toutes les constructions de langage, comme dans la méthode standard.

10
Dennis

Personnellement, je préfère

Items.Find(item => item.ProductId == ProductID && item.ProductName.Equals("ABS001"));
4
Mr Z

Utilisez && au lieu de et

var result = Items.Find(item => item.ProductId == ProductID && item.ProductName == "ABS001");
2
Zen

Cela m'agace quand quelqu'un nomme une variable avec le premier caractère en majuscule, donc (productID au lieu de productID):

CartItem Item = Items.Find(c => (c.ProductID == productID) && (c.ProductName == "ABS001"));

:)

0
JedatKinports