gpt4 book ai didi

c# - 在 LINQ 查询中将正 bool 结果与 true 和 false 进行比较

转载 作者:行者123 更新时间:2023-11-30 21:09:19 25 4
gpt4 key购买 nike

如果objHistory.IsLoginFromWhitelistedIP在下面的查询中是“真”,我想比较t1.Role.IsAvailableFromRestrictedIp true 和 false 并返回所有内容。

 return from t1 in db.UserRoles
where ((t1.Role.IsAvailableFromRestrictedIp
== objHistory.IsLoginFromWhitelistedIP)
select t1;

实现此目标的最佳方法是什么?

最佳答案

from t1 in db.UserRoles
where !objHistory.IsLoginFromWhitelistedIP || (t1.Role.IsAvailableFromRestrictedIp ?? true)
select t1

from t1 in db.UserRoles
where objHistory.IsLoginFromWhitelistedIP && (t1.Role.IsAvailableFromRestrictedIp ?? true)
select t1

取决于 objHistory.IsLoginFromWhitelistedIP 的过滤功能, 意思是:

  • 如果objHistory.IsLoginFromWhitelistedIP值为 false = 记录可能有效取决于 t1.Role.IsAvailableFromRestrictedIp : 采用版本 1
  • 如果objHistory.IsLoginFromWhitelistedIP值为 false = 记录本身无效(不需要对 t1.Role.IsAvailableFromRestrictedIp 进行评估):采用版本 2

此外,您可以为 System.Nullable<bool> 分配一个默认值在 ?? 之后或者去 .GetValueOrDefault(T defaultValue)

关于c# - 在 LINQ 查询中将正 bool 结果与 true 和 false 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081698/

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