gpt4 book ai didi

c# - LINQ Select()/Any() 行为异常?

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:30 26 4
gpt4 key购买 nike

我有以下代码

return lStoredRecords.Select(u => 
u.sCardId == sCardId &&
u.rtMode == eRecordType &&
u.dtTime >= DateTime.Now.AddMinutes(-15.0)).Any();

但由于某些原因它总是返回True,

lStoredRecords 包含一条记录,因此 dtTime 满足上述条件 - 所以我期望上面的代码行返回 False

有什么想法吗?

最佳答案

首先,您根本不清楚为什么要使用 Select。我希望您单独使用 Any,将谓词指定为参数。

其次,如果 lStoredRecords 有任何记录,这将总是返回true - Any()没有谓词只是返回输入序列中是否有任何记录,Select 只是将输入值投影到输出值——它根本不进行任何过滤。如果您希望过滤,则应该使用 Where .

第三,不清楚您首先想要 Any 。从你的问题:

lStoredRecords contains one record such that it's dtTime doesn't satisfy the above condition - so I was expecting the above line of code to return False

如果您希望它在任何记录不满足条件时返回 false,您几乎肯定应该使用 All 来代替 - 您想要检查是否 < em>所有 输入值都符合您的条件。

所以基本上你想要:

return lStoredRecords.All(u => u.sCardId == sCardId && 
u.rtMode == eRecordType &&
u.dtTime >= DateTime.Now.AddMinutes(-15.0));

关于c# - LINQ Select()/Any() 行为异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128651/

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