2016-05-15 22 views
1

在下面的case語句中,我試圖最小化代碼以使應用程序更快一點,所以我試圖將所有將顯示同一個面板(generlpanel)的類別合併爲一個case部分,但它沒有用,而如果我選擇會計,然後(通用面板)將正常顯示以及音頻(面板全部)將出現。所以有人可以幫我解決它。如何使用||在大小寫語句中插入許多參數操作

if (Request.QueryString["cat"] != null) 
     { 
      string cat = Request.QueryString["cat"].ToString(); 
      string category = string.Empty; 
      switch (cat) 
      { 
       case "Animal Accessories || Animal care || Birds || Others animals || Cats || Cows || Dogs || Fish || Horses": 
        category = "Animal Accessories || Animal care || Birds || Others animals || Cats || Cows || Dogs || Fish || Horses"; 
        generlpanel.Visible = true; 
        break; 

       case "Accounting": 
        category = "Accounting"; 
        generlpanel.Visible = true; 
        break; 

       case "Audio": 
        category = "Audio"; 
        panelforall.Visible = true; 
        break; 

回答

0

你會這樣寫你的開關。

Case "Animal Accessories": Case" Animal care": Case "Birds": 


        generlpanel.Visible = true; 
        break; 

    case "Accounting": 
        category = "Accounting"; 
        generlpanel.Visible = true; 
        break; 

    case "Audio": 
        category = "Audio"; 
        panelforall.Visible = true; 
        break; 

看看這些例子。 switch (C# Reference)

+0

但在這種情況下,我將有很多很多的線,而這正是我不想讓頁面更快,是沒有任何使用其它類型的statments做什麼,我期待例如另一種方式對於?! – Simon

+0

讀取多行所需的資源可以忽略不計。除了明顯的屏幕房地產外,它幾乎沒有任何成本。如果必須在一行上,請查看@ Frode F的解決方案。 –

+0

@Simon,看看我最近的編輯。你可以把它們全部放在一行上。否則,請使用if語句。 –

0

您不能在案件中有多個條件。您可以編寫多個案例陳述,如@DanCundy回答,或者您可以使用if和正則表達式。防爆。

if (Regex.Match(cat, "Animal Accessories|Animal care|Birds|Ohers animals|Cats|Cows|Dogs|Fish|Horses", RegexOptions.IgnoreCase).Success) 
{ 
    category = cat; 
    generlpanel.Visible = true; 

} 
else if (cat.ToUpperInvariant() == "Accounting".ToUpperInvariant()) 
{ 
    category = "Accounting"; 
    generlpanel.Visible = true; 

} 
else if (cat.ToUpperInvariant() == "Audio".ToUpperInvariant()) 
{ 
    category = "Audio"; 
    panelforall.Visible = true; 

} 
相關問題