2012-09-13 24 views
10

Najczęściej znajdziemy ogólną listę kod jak:Znajdź pozycję na liście leków generycznych poprzez określenie wielu warunków

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

więc powyższy kod wyszukuje i aktualizacje z innymi danymi, ale jeśli chcę znaleźć przez wielokrotność warunki, a następnie w jaki sposób mogę napisać kod?

Chcę napisać kod jak:

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

proszę kierować do mnie w wielu warunkach, gdy znajdziemy listę rodzajowe.

+6

&& zamiast i – Mark

+1

Jeśli potrzebujesz, możesz również użyć || (zależy od warunku) – goGud

Odpowiedz

41

Spróbuj tego:

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

C# nie jest C++. Nie ma potrzeby w dodatkowych nawiasach. – Dennis

+10

Tak, Thnx, wiem. Ale używam ich, by poprawić czytelność. To tylko styl kodu, który stał się nawykiem. –

+0

Co powiesz, jeśli masz "IN CLAUSE" do drugiej operacji? –

9

Spróbuj tego:

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

Ciało wyrażenia lambda jest po prostu metoda. Możesz użyć w nim wszystkich konstrukcji językowych, jak w zwykłej metodzie.

2

Zastosowanie & & zamiast i

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

Osobiście wolę

Items.Find(item => item.ProductId == ProductID && item.ProductName.Equals("ABS001")); 
Powiązane problemy