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

时间:2018-06-21 09:04:51

标签: c# arrays list user-input

前提:位于List中的数组。用户输入列表中的数组,在数组中循环3个字符串,选择再次循环以在循环中创建另一个数组。使用in打印列表和数组。 发生的事情/问题:当选择创建另一个循环“数组”时,第二个循环“数组”将覆盖第一个循环“数组”的值。如果第一个数组的值是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();

2 个答案:

答案 0 :(得分:1)

将字符串数组的声明移动到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
    //....
}

答案 1 :(得分:0)

放入此行

BEGIN
DECLARE cur2 CURSOR FOR
SELECT  tpud_tsh_pk,
    TCEG,
    TPCH,
    TSH,
    TBMH,
    TPOC,
    RK3
FROM report_ar_temp2 

FOR NOT FOUND SET v_finished = 1;
OPEN cur2;
    loop_report:LOOP
        FETCH cur2 INTO v_tpud_tsh_pk_2, v_TCEG, v_TPCH, v_TSH, v_TBMH, v_TPOC, v_RK3;
            IF v_finished = 1 THEN
                LEAVE loop_report;
            END IF;
        UPDATE report_ar_temp
        SET `Giro` = v_TCEG, `PCI` = v_TPCH, `PDCN` = v_TSH, `Transfer` = v_TBMH, `Program` = v_TPOC, `Hub. RK` = v_RK3
        WHERE `pk` = v_tpud_tsh_pk_2;
    END LOOP loop_report;
CLOSE cur2;
END;

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