gpt4 book ai didi

c# - 这两个 LINQ 查询有什么区别?

转载 作者:行者123 更新时间:2023-11-30 14:07:22 26 4
gpt4 key购买 nike

我有 2 个 LINQ 查询,一个返回我期望的结果,另一个没有,我正在尝试了解原因。我试图从 Config 中的所有节点中找出是否有一个名为“TEST”的节点并且其 Selected 属性为 True。

查询 1 - 返回正确的东西在 Any() 中有条件:

var res1 =
(from config in _config.CurrentSettings.Config let name = config.name select config).Any(
config => config.name.Equals("TEST") && config.selected == true);

失败的查询 2 在 Select 中有条件:

(_config.CurrentSettings.Config.Select(config => config.name.Equals("TEST") && config.selected))
.Any();

最佳答案

LINQ 的 Any() 没有条件意味着“至少有一行”。第一个查询指定一个条件,使其“至少有一行匹配该条件”。

要使第二个查询等同于第一个查询,请使用 Any(flag => flag),或将 Select 替换为 Where。这两个选项都不如包含条件的初始 Any,因为它们可读性差。

关于c# - 这两个 LINQ 查询有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41510777/

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