通过指定多个条件在通用列表中查找项目

Tho*_*mas 17 c# linq lambda

通常我们会找到包含以下代码的通用列表:

CartItem Item = Items.Find(c => c.ProductID == ProductID);
Item.Quantity = Quantity;
Item.Price = Price;
Run Code Online (Sandbox Code Playgroud)

所以上面的代码找到并更新了其他数据,但如果我想通过多个条件找到,那么我该如何编写代码呢?

我想写代码如下:

CartItem Item = Items.Find(c => c.ProductID == ProductID and c.ProductName == "ABS001");
Run Code Online (Sandbox Code Playgroud)

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

Ant*_*kov 56

试试这个:

CartItem Item = Items.Find(c => (c.ProductID == ProductID) && (c.ProductName == "ABS001"));
Run Code Online (Sandbox Code Playgroud)

  • 是的,thnx,我知道.但我用它们来提高可读性.这只是一种代码风格,成为一种习惯. (18认同)
  • C#不是C++.没有必要使用额外的括号. (5认同)

Den*_*nis 10

试试这个:

Items.Find(c => c.ProductID == ProductID && c.ProductName == "ABS001");
Run Code Online (Sandbox Code Playgroud)

lambda表达式的主体只是一种方法.您可以在其中使用所有语言结构,如常规方法.


小智 5

就个人而言,我更喜欢

Items.Find(item => item.ProductId == ProductID && item.ProductName.Equals("ABS001"));
Run Code Online (Sandbox Code Playgroud)