[英]How to declare the values of arrays in a switch statement in C#?
I'm new to C# and I'm trying to figure out how I declare the values of arrays in switch statements. 我是C#的新手,我想弄清楚如何在switch语句中声明数组的值。 I'm used to using PHP and Javascript often and I can't figure out how I'd have to do this in C#. 我习惯于经常使用PHP和Javascript,但无法弄清楚如何在C#中执行此操作。 This is what I have right now: 这就是我现在所拥有的:
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 />";
}
Is there a way in C# to make my switch statement shorter? C#中有没有一种方法可以使我的switch语句更短? For example something like this: 例如这样的事情:
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;
}
First off, I would use List<T>
instead of ArrayList
. 首先,我将使用List<T>
而不是ArrayList
。
Second, if you want to add a range of items, use AddRange()
and pass in a new string array: 其次,如果要添加一系列项目,请使用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
}
You can use AddRange
for this: 您可以为此使用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;
// ...
}
you almost got it :) 你几乎明白了:)
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;
}
Per your posted code, you can't bypass the switch
statement but as already answered you can use AddRange()
method to add list of string
at once. 根据您发布的代码,您不能绕过switch
语句,但是正如已经回答的那样,您可以使用AddRange()
方法立即添加string
列表。 Finally, it's awful using ArrayList
instead use List<string>
like 最后,使用ArrayList
代替使用List<string>
太糟糕了
List<string> products = new List<string>();
Use Dictionary 使用字典
var winkelToProducts = new Dictionary<string, string[]>();
// init winkel to its' products
var products = winkelToProducts[winkel];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.