在C#中,.ForEach()
方法是LINQ扩展方法之一,用于对集合中的每个元素执行指定的操作。然而,.ForEach()
方法并不支持continue
语句,因为它不是一个循环结构,而是一个委托(delegate)的执行。
如果你需要在遍历集合时跳过某些元素,你可以使用传统的for
循环或者foreach
循环,并在这些循环中使用continue
语句。下面是一个使用foreach
循环和continue
语句的示例:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
if (number == 3)
{
continue; // 跳过数字3
}
Console.WriteLine(number);
}
在这个示例中,当number
等于3时,continue
语句会被执行,循环会跳过当前迭代,继续执行下一个迭代。
如果你坚持要在.ForEach()
方法中实现类似continue
的功能,你可以通过抛出异常来实现,但这通常不是一个好的做法,因为它会使代码难以理解和维护。下面是一个不推荐使用的示例:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.ForEach(number =>
{
if (number == 3)
{
throw new ContinueException(); // 抛出自定义异常
}
Console.WriteLine(number);
});
// 自定义异常类
public class ContinueException : Exception
{
public ContinueException() { }
}
// 在ForEach外部捕获异常并继续执行
try
{
numbers.ForEach(number =>
{
if (number == 3)
{
throw new ContinueException();
}
Console.WriteLine(number);
});
}
catch (ContinueException)
{
// 捕获到ContinueException异常,不做任何处理,继续执行后续代码
}
但是,这种方法有很多缺点,比如可能会掩盖真正的异常,增加代码复杂性等。因此,建议使用for
循环或foreach
循环来实现你的需求。
参考链接:
领取专属 10元无门槛券
手把手带您无忧上云