我有一个FluentValidator,它有多个属性,如zip和county等.我想创建一个规则,它接受两个属性,就像RuleFor构造一样
public class FooArgs
{
public string Zip { get; set; }
public System.Guid CountyId { get; set; }
}
public class FooValidator : AbstractValidator<FooArgs>
{
RuleFor(m => m.CountyId).Must(ValidZipCounty).WithMessage("wrong Zip County");
}
Run Code Online (Sandbox Code Playgroud)
这有效,但我想将Zip和县都传递到rue以便验证.实现这一目标的最佳方法是什么?
鉴于布尔值的任意列表,什么是确定的最优雅的方式正是其中之一是真的吗?
最明显的黑客攻击是类型转换:将它们转换为0for false和1for true,然后对它们求和,然后返回sum == 1.
我想知道是否有办法在不将它们转换为int的情况下执行此操作,实际上使用布尔逻辑.
(这似乎应该是微不足道的,idk,长周)
编辑:如果不明显,这更像是一个代码高尔夫/理论问题.我不喜欢在PROD代码中使用类型转换/ int添加,我只是感兴趣,如果有没有这样做的方式.
编辑2:对不起,这是一个漫长的一周,我不是很好地解释自己.让我试试这个:
在布尔逻辑中,如果所有布尔都为真,则对一组布尔值进行AND运算是正确的,如果其中至少有一个为真,则该集合为真.如果只有一个布尔值为真,那么是否存在一个逻辑结构?例如,对于两个布尔值的集合,XOR就是这个,但不仅如此,它还会失败.