gpt4 book ai didi

c# - 多次使用 ||和 && 操作数

转载 作者:可可西里 更新时间:2023-11-01 03:12:49 31 4
gpt4 key购买 nike

我有一个使用 Entity Framework 的查询。它有许多不同的操作数,我对其优先级感到困惑。我得到了错误的结果。我需要所有 IsPaid == trueIsPaid == null 的记录,而且所有记录都必须是 TypeId == 1TypeId == 2,也必须是 CityId == 1CategoryId == 2。由于某种原因,它不评估 CityIdCategoryId。我究竟做错了什么?谢谢。

var list = db.Ads.Where (x =>
x.IsPaid == true || x.IsPaid == null &&
x.TypeId == 1 || x.TypeId == 2 &&
x.CityId == 1 && x.CategoryId == 2
).ToList();

最佳答案

解决这个问题的最好方法是使用括号。即使您知道绑定(bind)优先级,也应该始终使用它们,以提高代码的可读性。

(x.IsPaid == true || x.IsPaid == null) && (x.TypeId == 1 || x.TypeId == 2) && x.CityId == 1 && x.CategoryId == 2


&& 的优先级高于 ||

所以 false && false || true 将被翻译成 (false && false) ||真 =>


@Joey 提到的旁注:

您可以编写 (x.IsPaid != false) 而不是 (x.IsPaid == true || x.IsPaid == null)

关于c# - 多次使用 ||和 && 操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40501769/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com