使用两个条件在Entity Framework中指定项目列表内容

时间:2014-01-07 07:23:21

标签: c# entity-framework

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

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 IN ("cake,bread,toast,drink"));

3 个答案:

答案 0 :(得分:2)

简单。创建一个动态搜索关键字字符串的数组/列表,并按如下所示进行检查:

var conditionarr = new []{"cake","bread","toast","drink"}; // your array or list of string
CartItem Item = Items.Find(c => c.ProductID == ProductID 
 && conditionarr.Contains(c.ProductName));

答案 1 :(得分:2)

您的查询将如下所示:

var serachIn="cake,bread,toast,drink";

CartItem Item = Items.Where(c => c.ProductID == ProductID &&
                            serachIn.Contains(c.ProductName));

答案 2 :(得分:1)

您可以使用:

List<string> strList = new List<string>{ "cake", "bread", "toast", "drink" };
CartItem Item = Items.Find(c => c.ProductID == ProductID && strList.Contains(c.ProductName))