Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#用户输入到列表中的数组_C#_Arrays_List_User Input - Fatal编程技术网

C#用户输入到列表中的数组

C#用户输入到列表中的数组,c#,arrays,list,user-input,C#,Arrays,List,User Input,前提:在列表中嵌入数组。用户输入到列表中的数组,在数组中循环3个字符串,选择再次循环以在循环中创建另一个数组。打印列表和数组,并在中使用。 发生的情况/问题:当选择创建另一个循环“array”时,第二个循环“array”会覆盖第一个循环“array”的值。若第一个数组的值为a、b、c,第二个循环/数组的值为d、s、g。当我打印它时,第二个数组已经覆盖了第一个数组。打印第一个数组:d,s,g第二个数组d,s,g 如何在列表中创建用户想要的新数组的次数 List<string[]> Lo

前提:在列表中嵌入数组。用户输入到列表中的数组,在数组中循环3个字符串,选择再次循环以在循环中创建另一个数组。打印列表和数组,并在中使用。 发生的情况/问题:当选择创建另一个循环“array”时,第二个循环“array”会覆盖第一个循环“array”的值。若第一个数组的值为a、b、c,第二个循环/数组的值为d、s、g。当我打印它时,第二个数组已经覆盖了第一个数组。打印第一个数组:d,s,g第二个数组d,s,g

如何在列表中创建用户想要的新数组的次数

List<string[]> Loggbok = new List<string[]>();
string[] input = new string[3] ;

bool tr = true;
while (tr)
{
    Console.WriteLine("Gör en ny Logg inlägg");
    for (int i = 0; i < 3; i++)
    {
        string Object = Console.ReadLine();
        input[i] = Object;
    }

    Loggbok.Add(input);

    Console.Write("Make a nother array press: j if not inputn : ");
    string val = Console.ReadLine();
    if (val == "j")
    {
        tr = true;
    }
    else 
    { 
        tr = false;
    }
}

Console.WriteLine(Loggbok[0][0]);  //print first array in list
Console.WriteLine(Loggbok[0][1]);
Console.WriteLine(Loggbok[0][2]);

Console.WriteLine(Loggbok[1][0]);   //print second array in list
Console.WriteLine(Loggbok[1][1]);
Console.WriteLine(Loggbok[1][2]);

Console.ReadLine();
List Loggbok=new List();
字符串[]输入=新字符串[3];
bool tr=真;
while(tr)
{
Console.WriteLine(“Gör en ny Logg inlägg”);
对于(int i=0;i<3;i++)
{
string Object=Console.ReadLine();
输入[i]=对象;
}
Loggbok.Add(输入);
编写(“生成另一个数组,如果没有输入,则按:j:”);
字符串val=Console.ReadLine();
如果(val=“j”)
{
tr=真;
}
其他的
{ 
tr=假;
}
}
Console.WriteLine(Loggbok[0][0])//打印列表中的第一个数组
Console.WriteLine(Loggbok[0][1]);
Console.WriteLine(Loggbok[0][2]);
Console.WriteLine(Loggbok[1][0])//打印列表中的第二个数组
Console.WriteLine(Loggbok[1][1]);
Console.WriteLine(Loggbok[1][2]);
Console.ReadLine();

将字符串数组的声明移动到while循环中,以便创建新数组。现在您继续使用相同的数组。因此,在while循环中的每次迭代中,新结果都会覆盖以前的结果,这就是为什么最终会得到上一次迭代的值

//string[] input = new string[3]; <- removed here
while (tr)
{
    Console.WriteLine("Gör en ny Logg inlägg");
    string[] input = new string[3]; //<- added here
    //....
}
//字符串[]输入=新字符串[3] 放这条线

string[] input = new string[3] ;

进入while循环。这对我有用。

我不明白你的问题。代码是否与数组和列表有关?你能更清楚地指出你想要达到的目标吗?顺便说一句,我建议不要使用对象作为字符串的名称,因为对象是类对象的保留名称。这可能会引起很多问题。我写的有点复杂。但在我发布问题一分钟后,我才想出了解决办法。数组声明应该在for循环中。然后我需要在列表中创建数组。根据用户需要创建任意多个阵列。然后打印包含所有数组的列表。格式不是很好,所以我没有看到列表部分。请参阅下面的答案之一。谢谢!感谢您的帮助,您可以在两个答案中的一个上投票并标记为解决方案。有人知道如何打印整个列表和数组吗?'foreach(Loggbok中的var数组){foreach(数组中的var arrayItem){Console.WriteLine(arrayItem);}