![](/img/trans.png)
[英]I declare a variable in C# and cannot use it inside of the switch statement
[英]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.