动态大小的数组

时间:2014-01-09 15:21:38

标签: c# arrays console-application

我一直在尝试制作一个销售计划,向客户询问他将购买的商品数量。例如,如果他输入"5",下一个窗口将询问他5个问题。我的问题是,我需要使用数组,所以有什么方法可以改变

string[] arrmerch = new string[6];

新字符串中的数字是“6”,用户输入了什么?这是循环。项目选择是问题。

for (int i = 0; i <= arrmerch.Length; i++)
{
    Console.Write("Item choice: ");
    arrmerch[i] = Console.ReadLine();

4 个答案:

答案 0 :(得分:7)

当然,只需这样做:

int userInput = Convert.ToInt32(Console.ReadLine());
string[] arrmerch = new string[userInput];

您需要添加输入检查以确保您拥有的是整数而不是其他内容。

以下是输入检查的示例:

int arraySize = 0;
if(Int32.TryParse(Console.ReadLine(), out arraySize))
{
    string[] arrmerch = new string[arraySize];

    //the rest of your code
    //...
    //.
}
else
{
    //The user entered a value which cannot be parsed to an int
}

答案 1 :(得分:0)

更改     string [] arrmerch = new string [6];

string[] arrmerch = new string[Convert.ToInt32(Console.ReadLine())];

将用户输入并创建该大小的数组。

答案 2 :(得分:0)

怎么样:

int numberOfQuestions = Convert.ToInt32(Console.Readline());
string[] arrmerch = new string[numberOfQuestions];

for (int i = 0; i <= arrmerch.Length; i++)
                    {
                        Console.Write("Item choice: ");
                        arrmerch[i] = Console.ReadLine();

但是需要进行错误检查。

答案 3 :(得分:0)

此外,您可以使用Generic Lists。如果您希望将来更改阵列长度,它们会更灵活

int count = Convert.ToInt32(Console.ReadLine());
var list = new List<string>();
for (int i = 0; i <= count; i++)
{
     Console.Write("Item choice: ");
     list.Add(Console.ReadLine());
}