![](/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.