gpt4 book ai didi

c# - 在多个链式 LINQ 查询中使用一个变量

转载 作者:太空狗 更新时间:2023-10-30 00:02:56 25 4
gpt4 key购买 nike

在多个链式调用中使用单个 lambda 表达式变量是否公平?例如:

MyList.Where(i => i.ID > 20).OrderBy(i => i.Name);

Where() 中使用的 i 也与 OrderBy() 中使用的 i 保持独立,或者它们会不会对彼此有一些隐藏的副作用,所以我必须为每个使用不同的变量?另外,您的答案也适用于 VB.NET 吗?

我问这个是因为我在一个稍微不同的上下文中读到我不应该直接在 LINQ 查询中使用 foreach 变量,而是在循环内制作变量的本地副本。上面的代码中是不是也隐藏了一些类似的效果?

最佳答案

他们是完全独立的。实际上,每次你声明一个 lambda 时,你也声明了范围变量,这些变量是这个 labda 表达式的局部变量。所以 Where(i => i.ID > 20) 中的 iOrderBy(i => i.Name).在第一种情况下,i 指的是 MyList 的随机元素,然后 i 指的是来自 Where 子句,这将是 MyList 中具有 ID>20 的所有元素的序列。

关于c# - 在多个链式 LINQ 查询中使用一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137281/

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