![](/img/trans.png)
[英]performance assessment of a lambda expression in a foreAch loop in C#
[英]Lambda Expression with foreach loop in C#
var coupon=" ";
foreach(var p in products)
{
var query = products.Where(b => b.getId() == p.getId()).ToList();
if (query != null)
{
foreach(var q in query)
{
coupon = q.getName();
Console.WriteLine(coupon);
}
}
}
谁能告诉我这个代码块的 lambda 表达式是什么
并非每个循环操作都适合 lambda 表达式。 Lambda 表达式对于数据的投影很有用——即将它从一种形式转换为另一种形式——应用公式等,但是:这不是你在这里做的。 你正在做的数据(的东西Console.WriteLine
,你可以做LINQ这里涉及到的东西SelectMany
,但...这将变得不太可读,而不是更多。
你所拥有的就好了。 我要做的唯一改变是:
if (query != null)
测试 - 这永远不会是假的ToList()
- 不需要创建一个新列表来迭代它coupon
p.getId()
所以:
foreach(var p in products)
{
var id = p.getID();
foreach(var q in products.Where(b => b.getId() == id))
{
var coupon = q.getName();
Console.WriteLine(coupon);
}
}
您的代码块中有一个lambda 表达式,它是Where
的唯一参数,如下所示:
b => b.getId() == p.getId()
在这种特殊情况下, lambda 是有效的(虽然不是技术上的) Predicate ,这是一个测试某事是true
还是false
的函数的奇特名称
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.