簡體   English   中英

如何在C#的switch語句中聲明數組的值?

[英]How to declare the values of arrays in a switch statement in C#?

我是C#的新手,我想弄清楚如何在switch語句中聲明數組的值。 我習慣於經常使用PHP和Javascript,但無法弄清楚如何在C#中執行此操作。 這就是我現在所擁有的:

string winkel = winkelDropdown.SelectedValue;
ArrayList products = new ArrayList();
output.Text = "Bij de " + winkel + " moet ik dit meenemen:<br />";
switch (winkel)
{        
    case "Albert Heijn":
        products.Add("Boter");
        products.Add("Kaas");
        products.Add("Eieren");
        break;
    case "Jumbo":
        products.Add("Spek");
        products.Add("Lamsvlees");
        products.Add("Huiswijn");
        break;
    case "Plus":
        products.Add("Spaghetti");
        products.Add("Pastasaus");
        products.Add("Kaasbroodje");
        break;
    case "Emté":
        products.Add("Jupiler Krat");
        products.Add("Barbeque kolen");
        products.Add("Frisdrank");
        break;
}
foreach (string product in products)
{
    output.Text += product + "<br />";
}

C#中有沒有一種方法可以使我的switch語句更短? 例如這樣的事情:

string[] productArray = string[3];
switch (winkel)
{        
    case "Albert Heijn":
        productArray = ["Boter", "Kaas", "Eieren"];
        break;
    case "Jumbo":
        productArray = ["Spek", "Lamsvlees", "Huiswijn"];
        break;
    case "Plus":
        productArray = ["Spaghetti", "Pastasaus", "Kaasbroodje"];
        break;
    case "Emté":
        productArray = ["Jupiler Krat", "Barbeque kolen", "Frisdrank"];
        break;
}

首先,我將使用List<T>而不是ArrayList

其次,如果要添加一系列項目,請使用AddRange()並傳入新的字符串數組:

string winkel = winkelDropdown.SelectedValue;
List<string> products = new List<string>();
switch (winkel)
{        
    case "Albert Heijn":
        products.AddRange(new [] { "Boter", "Kaas", "Eieren" });
        break;
    case "Jumbo":
        products.AddRange(new [] { "Spek", "Lamsvlees", "Huiswijn" });
        break;
    //etc
}

您可以為此使用AddRange

string winkel = winkelDropdown.SelectedValue;
ArrayList products = new ArrayList();
output.Text = "Bij de " + winkel + " moet ik dit meenemen:<br />";
switch (winkel)
{        
    case "Albert Heijn":
        products.AddRange(new string[] {"Boter", "Kaas", "Eieren" });
        break;
        // ...
}

你幾乎明白了:)

        string[] productArray;
        switch (winkel)
        {
            case "Albert Heijn":
                productArray = new[] {"Boter", "Kaas", "Eieren"};
                break;
            case "Jumbo":
                productArray = new[] { "Spek", "Lamsvlees", "Huiswijn"};
                break;
            case "Plus":
                productArray = new[] { "Spaghetti", "Pastasaus", "Kaasbroodje"};
                break;
            case "Emté":
                productArray = new[] {"Jupiler Krat", "Barbeque kolen", "Frisdrank"};
                break;
        }

根據您發布的代碼,您不能繞過switch語句,但是正如已經回答的那樣,您可以使用AddRange()方法立即添加string列表。 最后,使用ArrayList代替使用List<string>太糟糕了

List<string> products = new List<string>();

使用字典

var winkelToProducts = new Dictionary<string, string[]>();
// init winkel to its' products
var products = winkelToProducts[winkel];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM