首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For-each循环变量

For-each循环变量
EN

Stack Overflow用户
提问于 2011-05-11 04:05:57
回答 2查看 154关注 0票数 1

ob在下面的代码中是什么意思-这和item是一样的吗?

代码语言:javascript
复制
foreach (var item in allItems)
{
    if (excludeItems.Exists(ob => ob.Equals(item)))
    {
        Console.WriteLine("Item {0} excluded",item);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-11 04:07:21

oblambda expression的参数。因此,如果您熟悉匿名方法,它是这样的:

代码语言:javascript
复制
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表达式可以更明确,因此可以这样写:

代码语言:javascript
复制
if (excludeItems.Exists((string ob) => { return ob.Equals(item); })

代码语言:javascript
复制
if (excludeItems.Exists((string ob) => ob.Equals(item))

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

现在,在这个特定的例子中,从lambda表达式创建的委托将为excludeItems中的每个元素调用一次(在foreach循环的每次迭代中),并且ob将具有该元素的值,直到它找到等于item的值(或者耗尽了所有元素)。

票数 8
EN

Stack Overflow用户

发布于 2011-05-11 04:09:38

ob表示excludeItems中的项目

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5955808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档