-3

もう一度投稿していますが、これを変換する簡単な方法が見つからないようです。このメソッド ExtractData の 2 次元配列を取り除き、リストを使用して置き換えようとしましたが、うまくいきません。いくつかの例やアイデアを教えていただけますか? ありがとうございました。

private void ExtractData( DateTime dtmDay )
  {
     // set to selected date in MonthCalendar control
     int intChosenDay = dtmDay.Day;
     int intFileDay; // day of event from file
     int intLineNumbers; // counts lines to skip

     m_intNumberOfEvents = 0; // set number of events to 0

     // initialize StreamReader to read lines from file
     StreamReader objInput = 
        new StreamReader( "calendar.txt" );

     // read first line before entering loop
     string strLine = objInput.ReadLine();

     // loop through lines in file
     while ( objInput.Peek() > -1 &&
        m_intNumberOfEvents < 10 )
     {
        intFileDay = Int32.Parse( strLine ); // extract day

        // if event scheduled for specified day,
        // store information
        if ( intFileDay == intChosenDay )
        {
           m_strData[ m_intNumberOfEvents, 0 ] = strLine;
           m_strData[ m_intNumberOfEvents, 1 ] = 
              objInput.ReadLine();
           m_strData[ m_intNumberOfEvents, 2 ] = 
              objInput.ReadLine();
           m_strData[ m_intNumberOfEvents, 3 ] = 
              objInput.ReadLine();
           m_strData[ m_intNumberOfEvents, 4 ] = 
              objInput.ReadLine();
           m_intNumberOfEvents++;
        }
        else
        {
           // skip to next event in file
           for ( intLineNumbers = 0; intLineNumbers <= 3;
              intLineNumbers++ )
              strLine = objInput.ReadLine();
        }

        // read day of next event in file
        strLine = objInput.ReadLine();

     } // end while

  } // end method ExtractData
4

3 に答える 3

0

この場合、新しいクラスを定義する意味がないことがわかりました。すべてのフィールドが文字列で、クラスにメソッドやプロパティがありません。これは単なる文字列の配列です。使用する:

var results = new List<string[]>(); 
...
var lines = new string[5];

lines[0] = strLine;
lines[1] = objInput.ReadLine();
lines[2] = objInput.ReadLine();
lines[3] = objInput.ReadLine();
lines[4] = objInput.ReadLine();

results.Add(lines);
于 2013-04-26T22:25:04.213 に答える
0

ディラン・スミスが言ったことを繰り返さなければなりません。クラスを作ります。

何をしようとしているのかよくわかりませんが、毎日発生する一連のイベントが必要なようです。もしそうなら、クラスは本当に最も理にかなっています。クラスはこれらの文字列を格納するだけでなく、より簡単に管理できるデータ (イベントが発生する時刻など) を保持することもできます。

何かに関する情報を複数の変数に保持させたいというこのような問題に直面した場合は、クラスまたは構造体を作成してください。後で感謝します。

于 2013-04-26T21:57:45.167 に答える