22

大多数情况下,我们会找到带有如下代码的通用列表:

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");

当我们找到通用列表时,请指导我了解多种情况。

4

5 回答 5

65

尝试这个:

CartItem Item = Items.Find(c => (c.ProductID == ProductID) && (c.ProductName == "ABS001"));
于 2012-09-13T12:56:18.313 回答
11

尝试这个:

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

lambda 表达式的主体只是一个方法。您可以在其中使用所有语言结构,就像在常规方法中一样。

于 2012-09-13T12:56:05.370 回答
5

就个人而言,我更喜欢

Items.Find(item => item.ProductId == ProductID && item.ProductName.Equals("ABS001"));
于 2013-04-24T15:24:33.957 回答
3

使用&&代替and

var result = Items.Find(item => item.ProductId == ProductID && item.ProductName == "ABS001");
于 2012-09-13T12:59:37.480 回答
0

当有人用大写的第一个字符命名变量时,我很恼火,所以(productID 而不是 ProductID):

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

:)

于 2018-05-23T10:54:31.160 回答