C# 对于每个循环变量
ob在以下代码中的含义是什么?这与项目相同吗C# 对于每个循环变量,c#,for-loop,C#,For Loop,ob在以下代码中的含义是什么?这与项目相同吗 foreach (var item in allItems) { if (excludeItems.Exists(ob => ob.Equals(item))) { Console.WriteLine("Item {0} excluded",item); } } ob是的参数。因此,如果您熟悉匿名方法,则如下所示: foreach (var item in allItems) { if (exc
foreach (var item in allItems)
{
if (excludeItems.Exists(ob => ob.Equals(item)))
{
Console.WriteLine("Item {0} excluded",item);
}
}
ob
是的参数。因此,如果您熟悉匿名方法,则如下所示:
foreach (var item in allItems)
{
if (excludeItems.Exists(delegate (string ob) { return ob.Equals(item); })
{
Console.WriteLine("Item {0} excluded",item);
}
}
这是假设ob
的类型应该是string
——很可能不是。由于泛型类型推断,这将取决于排除项的类型
Lambda表达式可以更明确,因此可以写成:
if (excludeItems.Exists((string ob) => { return ob.Equals(item); })
或
基本上,lambda表达式中有几个小快捷键,用于可以推断其类型的单个参数和单个表达式的返回值的常见情况
现在在这种特殊情况下,从lambda表达式创建的委托将为
excludeItems
(在foreach
循环的每次迭代中)中的每个元素调用一次,并且ob
将具有该元素的值,直到它找到一个等于item
的值为止(或元素用完).ob
是的参数。因此,如果您熟悉匿名方法,则如下所示:
foreach (var item in allItems)
{
if (excludeItems.Exists(delegate (string ob) { return ob.Equals(item); })
{
Console.WriteLine("Item {0} excluded",item);
}
}
这是假设ob
的类型应该是string
——很可能不是。由于泛型类型推断,这将取决于排除项的类型
Lambda表达式可以更明确,因此可以写成:
if (excludeItems.Exists((string ob) => { return ob.Equals(item); })
或
基本上,lambda表达式中有几个小快捷键,用于可以推断其类型的单个参数和单个表达式的返回值的常见情况
现在在这种特殊情况下,从lambda表达式创建的委托将为
excludeItems
(在foreach
循环的每次迭代中)中的每个元素调用一次,并且ob
将具有该元素的值,直到它找到一个等于item
的值为止(或元素用完).ob表示排除项目中的项目ob表示排除项目中的项目谢谢,这非常有帮助并且详细。我将阅读有关lambda表达式的内容。谢谢。这是非常有用和详细的。我将阅读有关lambda表达式的内容。