0

こんにちは、文字列リストから文字列項目を取得して、int 配列に追加する必要があります何が悪いのか教えてください

private void buttonGenerateO_Click(object sender, EventArgs e)
            {
            List<string> AgentNumbers = new List<string>();
            List<string> AgentRide = new List<string>();
            int pocet = AgentNumbers.Count;
            int[][] dvouRozmernePole = new int[2][];
            dvouRozmernePole[0] = new int[pocet];
            dvouRozmernePole[1] = new int[pocet];

        foreach (string AgeNumb in AgentNumbers)
        {
            for (int i = 0; i < dvouRozmernePole[0].Length; i++)
                dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);

        }

        foreach (string AgeRide in AgentRide)
        {
            for (int i = 0; i < dvouRozmernePole[1].Length; i++)
                dvouRozmernePole[i] = Convert.ToInt32(AgeRide);

        }
4

4 に答える 4

2

この宣言を見てください:

int[][] dvouRozmernePole = new int[2][];

配列dvouRozmernePole配列も同様です。ここを見てください:

dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);

intに値を割り当てようとしてdvouRozmernePole[i]いますが、これは である必要があるため実行できませんint[]

私はあなたが欲しいと思う:

dvouRozmernePole[0][i] = Convert.ToInt32(AgeNumb);

そうは言っても、これらの行を考えると:

List<string> AgentNumbers = new List<string>();
List<string> AgentRide = new List<string>();
int pocet = AgentNumbers.Count;
int[][] dvouRozmernePole = new int[2][];
dvouRozmernePole[0] = new int[pocet];
dvouRozmernePole[1] = new int[pocet];

...とにかく常に空のリストがあるため、変換する値はありません。

本当に配列を使用する必要がありますか? どこでも使用List<T>する方がほぼ確実に簡単です。

LINQ を使用すると、これを簡単にすることもできます。例えば:

int[] numbers = AgentNumbers.Select(x => int.Parse(x)).ToArray();
int[] rides = AgentRide.Select(x => int.Parse(x)).ToArray();
int[][] dvouRozmernePole = { numbers, rides };
于 2012-12-30T21:44:07.467 に答える
0

エラーは非常に明確です。声明では

dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);

整数を配列に割り当てます。

于 2012-12-30T21:43:36.280 に答える
0

dvouRozmernePoleは の配列ですがint[]、 をConvert.ToInt32返しますint。したがって、次の場合:

dvouRozmernePole[i] = Convert.ToInt32(AgeNumb);

dvouRozmernePole[i]は でありint[]、 を割り当てようとしていintます。

あなたが望むように見えます:

dvouRozmernePole[0][i] = Convert.ToInt32(AgeNumb);

以降

dvouRozmernePole[1][i] = Convert.ToInt32(AgeRide);

代わりに次のことができます。

int[][] dvouRozmernePole = new int[2][]
{
    AgentNumbers.Select(num => Convert.ToInt32(num)).ToArray(),
    AgentRide.Select(ride => Convert.ToInt32(ride)).ToArray()
};

配列を初期化します。

于 2012-12-30T21:43:55.313 に答える
0

dvouRozmernePole は int の配列の配列です

したがってdvouRozmernePole[i]、int値ではなくint []が期待されます

試す

もしかして

    for (int i = 0; i < dvouRozmernePole[0].Length; i++)
           dvouRozmernePole[0][i] = Convert.ToInt32(AgeNumb);
    }

    foreach (string AgeRide in AgentRide)
    {
        for (int i = 0; i < dvouRozmernePole[1].Length; i++)
            dvouRozmernePole[1][i] = Convert.ToInt32(AgeRide);

    }
于 2012-12-30T21:44:30.667 に答える