Найдите элемент в общем списке, указав несколько условий

Чаще всего мы находим общий список с кодом типа:

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

Таким образом, вышеуказанный код находит и обновляет другие данные, но если я хочу найти несколько условий, то как мне написать код?

Я хочу написать код вроде:

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

Пожалуйста, направляйте меня для нескольких условий, когда мы находим общий список.

Ответ 1

Попробуйте следующее:

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

Ответ 2

Попробуйте следующее:

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

Тело лямбда-выражения - это всего лишь метод. Вы можете использовать в нем все языковые конструкции, как в обычном методе.

Ответ 3

Лично я предпочитаю

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

Ответ 4

Использовать && вместо и

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