gpt4 book ai didi

c# - For-each 循环变量

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

以下代码中的 ob 是什么意思 - 这与 item 相同吗?

foreach (var item in allItems)
{
if (excludeItems.Exists(ob => ob.Equals(item)))
{
Console.WriteLine("Item {0} excluded",item);
}
}

最佳答案

oblambda expression 的参数.因此,如果您熟悉匿名方法,则类似于:

foreach (var item in allItems)
{
if (excludeItems.Exists(delegate (string ob) { return ob.Equals(item); })
{
Console.WriteLine("Item {0} excluded",item);
}
}

这是假设 ob 的类型应该是 string - 很可能不是。这将取决于 excludeItems ,由于泛型类型推断。

Lambda 表达式可以更明确,所以可以写成:
if (excludeItems.Exists((string ob) => { return ob.Equals(item); })

或者
if (excludeItems.Exists((string ob) => ob.Equals(item))

基本上,对于可以推断其类型的单个参数的常见情况,以及来自单个表达式的返回值,lambda 表达式中有几个小快捷方式。

现在在这种特殊情况下,从 lambda 表达式创建的委托(delegate)将为 excludeItems 中的每个元素调用一次。 (在 foreach 循环的每次迭代中)和 ob将具有该元素的值,直到找到等于 item 的值(或用完元素)。

关于c# - For-each 循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955808/

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