所以我有“不断扩展的LINQ查询”......我发现自己不得不采用一些参数来解决问题。我有这个:
var ud = db.Updates
.Where(c => c.Sold.Equals(false)&&(c.Status.Equals(("Pending"))))
.GroupBy(c => c.Vehicle)
.Select(x => x
.OrderByDescending(y => y.TimeStamp)
.First())
.ToList();
我需要在“c.Status.Equals”中添加一个OR来测试多个字符串值...例如“待定”|| “拒绝”这样做的正确方法/地点是什么?
非常感谢您的帮助!
答案 0 :(得分:11)
您可能需要考虑存储值数组以查看是否满足任何约束:
// Store all of the statuses you need to match within a collection
var validStatuses = new []{ "Pending", "Rejected", ... };
然后您只需要更新Where()
子句以检查您的现有状态是否与之前定义的集合中的任何一个匹配:
db.Updates.Where(c => !c.Sold && validStatuses.Contains(c.Status)))
答案 1 :(得分:0)
(c.Status.Equals(" Pending")|| c.Status.Equals(" Rejected"))
var ud = db.Updates
.Where(c => c.Sold.Equals(false) &&(c.Status.Equals("Pending") || c.Status.Equals("Rejected")))
.GroupBy(c => c.Vehicle)
.Select(x => x.OrderByDescending(y => y.TimeStamp).First()).ToList();
答案 2 :(得分:0)
尝试使用||或运营商
(c.Status.Equals(("Pending")|| c.Status.Equals("Rejected"));