0

txt ファイルからデータをロードし、それらを 2D double 配列に保存したいと思います。私はこのようなことを試みていました:

String input = File.ReadAllText(@"E:\c\vstup.txt");

int k = 0, l = 0;
double[][] resultout = new double[52][];
foreach (var row in input.Split('\n'))
{
    l = 0;
    foreach (var col in row.Trim().Split(' '))
    {
        resultout[k][l] = double.Parse(col.Trim());
        l++;
    }
    k++;
}

機能していません。私はC#が初めてです。誰でもこれを行う方法を提案できますか? ありがとうございました。

編集: 次の行で NullReferenceException をスローします: resultout[k][l] = double.Parse(col.Trim());

4

1 に答える 1

0

各行を初期化しません。列をなして:

double[][] resultout = new double[52][];

タイプ の 52 要素の配列を初期化しますdouble[]が、それらは初期化されません。だからあなたがしようとしているとき:

resultout[k][l] = double.Parse(col.Trim());

それは単にl存在しない配列の要素を取得しようとすることを単に意味します。各行を初期化する必要があります。resultout[k]null

resultout[k] = new double[number_of_elements];

number_of_elementsたとえば、次のように事前に知っておく必要があります。

var values = row.Trim().Split(' ');
resultout[k] = new double[values.Count()];
foreach (var col in values)
{
    resultout[k][l] = double.Parse(col.Trim());
    l++;
}
于 2014-02-13T07:37:10.157 に答える