2

ここで、 CSVファイルから 1 つの文字列を取得し、それをいくつかの基準と比較するコードを作成してみます。この文字列が基準に合格した場合は、それを 4 つの部分に分割します。各部分を配列に入れてから、いくつかの新しい値を取得しTextBoxて変更します。

現在、選択した文字列を分割する必要がある場合、私は適切です。いくつかのコードを用意しますが、分割された配列を取得するのではなく、取得するだけですSystem.string[]

コード

 try
        {
            FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite); 
            StreamReader sr = new StreamReader(fs); //open file for reading
            string[] line = sr.ReadToEnd().Split(new string[] { Environment.NewLine }, 
                                             StringSplitOptions.None); //read file to the end an divide it 
            sr.Close(); //close stream
            foreach (var l in line) //check each line for criteria
            {
                if (l.Contains(dateTimePicker1.Text.ToString() + eventNameUpdateTextBox.Text.ToString()))
                {
                    try
                    {
                        string[] temp = { "", "", "", "", };// i always have just 4 part of string
                        for (int i = 0; i<3; i++)
                        {
                            updatedTtextBox.Text = temp[i] = l.Split(',').ToString(); //try to divide it
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

しかし結果 -

デバッグ

私はどこで間違いを犯していますか?

4

1 に答える 1

5

の呼び出しは、s のl.Split(',')配列string、つまり aを生成しString[]ます。ToString()このような配列を呼び出す"System.String[]"と、出力に表示される値が生成されます。

ループの前に分割し、インデックスを進めながら分割から要素を選択し、各部分で必要なことをすべて行う必要があります。パーツを配列の個々の要素に配置することだけが必要な場合は、tempおそらくアイテムの数を に制限するだけで十分です。4l.Split(',').Take(4).ToArray()

updatedTtextBox.Textループをたどっていくうちに4回も入れ替わっているのが不思議です。達成しようとしていることを推測すると、次のことを試すことができます。

string[] temp = l.Split(',').Take(4).ToArray();
// For display purposes, you can join the data back with a different separator:
updatedTtextBox.Text = string.Join("|", temp);
于 2013-08-26T20:47:11.483 に答える