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

use*_*822 1 .net c# foreach switch-statement

在调试我有一个条件,其中Component.Attributes包括Count = 3(我的意思是3个元素的列表).它是这样的内部foreach循环:

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

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

Jon*_*n M 6

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

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