我想创建一个程序,用户可以在其中输入项目,这些项目将存储在数组中。当用户对项目数量没问题时,如果他拿到了项目,程序会询问每个项目。
问题是我似乎无法创建一个大小未知的数组。我尝试使用这样的东西:String[] list = new string[]{};
但是当程序到达那里时它会产生一个IndexOutOfRangeException。
我有办法做到这一点吗?
这是完整的代码:
bool groceryListCheck = true;
String[] list = new string[]{};
String item = null;
String yon = null;
int itemscount = 0;
int count = 0;
while (groceryListCheck)
{
Console.WriteLine("What item do you wanna go shop for?");
item = Console.ReadLine();
list[count] = item;
count++;
Console.WriteLine("Done?");
yon = Console.ReadLine();
if (yon == "y")
{
groceryListCheck = false;
itemscount = list.Count();
}
else
{
groceryListCheck = true;
}
}
for (int x = 0; x < itemscount; x++)
{
Console.WriteLine("Did you got the " + list[x] + "?");
Console.ReadKey();
}
答案 0 :(得分:14)
使用List
代替array
。
List<string> myList = new List<string>();
myList.Add("my list item");
收集完所有项目后,您可以使用foreach
循环遍历集合中的所有项目。
foreach(string listItem in myList)
{
Console.WriteLine(listItem);
}
答案 1 :(得分:5)
List<string>
会更容易,更灵活。
有许多使用List
here的示例,它们向您展示了从中提取数据的各种方法。
答案 2 :(得分:3)
您可以使用List<string>
然后,如果您需要数组作为结果,则可以调用.ToArray()
方法。
答案 3 :(得分:1)
我发现将变量列表放入List工作。例如:
bool groceryListCheck = true;
List<string> list = new List<string>();
String item = null;
String yon = null;
int itemscount = 0;
while (groceryListCheck)
{
Console.WriteLine("What item do you wanna go shop for?");
item = Console.ReadLine();
list.Add(item);
Console.WriteLine("Done?");
yon = Console.ReadLine();
if (yon == "y")
{
groceryListCheck = false;
itemscount = list.Count();
}
else
{
groceryListCheck = true;
}
}
for (int x = 0; x < itemscount; x++)
{
Console.WriteLine("Did you got the " + list[x] + "?");
Console.ReadKey();
}
这是完整的代码,它对我有用。
答案 4 :(得分:0)
我会说为此目的你应该使用 Hashtable 。您可以根据需要添加它,并且在创建它时不需要指定大小。有点像一个非常简单的数据库。