使用包含对列表使用Switch语句的可能方法

时间:2016-04-04 10:20:57

标签: c# winforms visual-studio

为了效率,有一种类似于switch语句的可能方法可用于列表吗?

e.g:

    switch (List)
    {
        case contains("admin"):
        permission = x;
        break;
        case contains("user"):    
    tabControl1.TabPages.Remove(tab_Admin);
        break;
        case contains("user2"):    
    tabControl1.TabPages.Remove(tab_Admin);
            tabControl1.TabPages.Remove(tab_Dates);
        break;
        case contains("guest"): 
            tabControl1.TabPages.Remove(tab_Admin);
            tabControl1.TabPages.Remove(tab_Dates);
    tabControl1.TabPages.Remove(tab_Data);
        break;
    }

而不是每个包含的if包含

1 个答案:

答案 0 :(得分:4)

您可以尝试这样:

if (List.Contains(value))
{
    switch (value)
    {
        case "admin": permission = x;
            break;
        case "user": tabControl1.TabPages.Remove(tab_Admin);
            break;
        case "user2": tabControl1.TabPages.Remove(tab_Admin);
            tabControl1.TabPages.Remove(tab_Dates);
            break;
        case "guest": tabControl1.TabPages.Remove(tab_Admin);
            tabControl1.TabPages.Remove(tab_Dates);
            tabControl1.TabPages.Remove(tab_Data);
            break;
    }
}

问题是List.Contains method返回布尔值,因此您不能像这样使用它。