为什么在foreach循环中切换只执行一次

时间:2014-08-18 15:54:30

标签: c# .net foreach switch-statement

关于调试我的条件Component.Attributes包含Count = 3(我的意思是3个元素的列表)。 它的内部循环就像这样:

foreach(Attributes atrb in Component.Attributes) 
{
    switch (Component.Type)
    {
        case "Combo":
            return validateCombo(atrb);
        case "List":
            return validateList(atrb);
        default:
            return true;
    }
}
return false;

我观察到这个foreach循环仅对列表的第一个成员执行。有人可以让我知道为什么它不执行其他列表成员(我的意思是在第2和第3)?它是由于返回。怎么解决?

1 个答案:

答案 0 :(得分:6)

Return是函数语句的结尾。到达第一个return语句后,您的整个函数终止,因此循环立即结束。

您通常希望在不同的开关案例之间使用break语句来停止执行,直到交换机定义结束。