gpt4 book ai didi

c# - 为什么 IEnumerable.Any 会为 False-booleans 的集合返回 True?

转载 作者:行者123 更新时间:2023-11-30 13:09:05 24 4
gpt4 key购买 nike

我最近需要检查两个列表,以查看数据类型是否与预期索引处的预期类型匹配。所以我检查了每个索引 i 处的每个元素 x 并将此比较存储为 bool 值,然后调用 Any 以查看是否有任何 bool 值为真。但是,下面的语句总是抛出异常。

var values = new object[] {(UInt64) 40, (Boolean) true, (Double) 45.3};
var types = new[] {typeof (UInt64), typeof (Boolean), typeof (Double)};

if (types.Select((x, i) => values[i].GetType() != x).Any())
throw new Exception();

(我知道为什么,但在调试了几分钟后我认为这是一个很好的问题)。

最佳答案

Enumerable.Any没有参数只是检查序列是否包含元素。如果您想知道是否有任何 true,您必须使用 overload :

bool anyTrue = bools.Any(b => b);

关于c# - 为什么 IEnumerable.Any 会为 False-booleans 的集合返回 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26158043/

24 4 0