Lag*_*una 21 .net c# linq lambda anonymous-methods
是否有相当于ForEach方法中的continue语句?
List<string> lst = GetIdList();
lst.ForEach(id =>
{
try
{
var article = GetArticle(id);
if (article.author.contains("Twain"))
{
//want to jump out of the foreach now
//continue; **************this is what i want to do*******
}
//other code follows
}
Run Code Online (Sandbox Code Playgroud)
编辑: 谢谢你所有的好答案.并且感谢您澄清.foreach不是一种扩展方法.我使用这种结构来保持编码风格的一致性(一个不同的程序员在同一个类中使用另一个类似的方法)...并且感谢为什么要避免使用.foreach的链接.
cad*_*ll0 55
A)ForEach不是LINQ,它是一种方法List<T>.
B)只需使用foreach.
C)return会这样做.
编辑
只是为了澄清,你正在做的是为列表中的每个条目提供一个方法. return将仅适用于该成员的方法.列表中的其余成员仍将调用该方法.
Ree*_*sey 18
就个人而言,我只会使用标准的foreach循环而不是List<T>.ForEach.
在这种情况下,您可以反转条件(以避免在这种情况下的代码)或调用return,因为您的目标是使用continue语句.但是,如果您愿意break,这将无效.话虽如此,还有其他一些原因可以避免List<T>.ForEach,所以我会考虑将其转换为正常的foreach语句.
Luk*_*keH 10
只是颠倒你的if情况:
lst.ForEach(id => {
var article = GetArticle(id);
if (!article.author.contains("Twain"))
{
// other code here
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23665 次 |
| 最近记录: |