gpt4 book ai didi

PredicateBuilder 和或或

转载 作者:行者123 更新时间:2023-12-01 10:07:05 24 4
gpt4 key购买 nike

在我见过的谓词生成器的所有示例中,如果您要构建“和”表达式条件,它会显示一个带有 PredicateBuilder.True 的起始表达式,而 PredicateBuilder.False 如果您正在构建“或”表达式标准。

我的问题是,情况总是如此吗?如果是,为什么不能简单地推断出这种情况。我怀疑在某些情况下,您正在构建一个“and”表达式并希望以 false 开头。与“或”相反

谁能给我解释一下?

最佳答案

在表达式 A and B and C and D 中,如果任何条件(A、B、C 或 D)为 False,则整个表达式为 False。因此,如果您以 False 开始“and”表达式,则无论您对它执行什么 AND,整个表达式都将为 False。

与“或”表达式相同。在表达式 A 或 B 或 C 或 D 中,如果任何条件(A、B、C 或 D)为真,则整个表达式为真。因此,如果您以 True 开始“或”表达式,则无论您对它执行什么 OR 操作,整个表达式都将为 True。

至于为什么需要使用字面量 True 或 False 来启动 PredicateBuilder,我相信这只是一种让使用 PredicateBuilder 更容易的约定。您的表达式始终以( bool )条件开头,后跟 0 个或多个“和/或条件”部分。所以你可以有“A”,或者“A和B”,或者“A和B和C”。你永远不会以“and A”开头。 PredicateBuilder 的 .And(condition) 是在表达式中加上“and condition”,所以你不能从它开始。可能有一个构造函数可以让您创建表达式并以初始条件启动它(新表达式 <...>(A)?我实际上没有检查过...有吗?)但后来您会必须以不同于第二个和后续条件(调用 .And(...) 或 .Or( ...))。 PredicateBuilder 的 .True<...>() 和 .False<...>() 方法处理创建表达式以及添加第一个(通用)条件,以便您可以处理添加第一个和所有后续条件您的循环相同(通过调用 .And(...) 或 .Or(...))。

关于PredicateBuilder 和或或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332489/

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