3

csvファイルを解析する次のコードを作成しました。

var result = FullFile.Split('\n')
  .Select(s => new 
  { FirstName = s.Split(',')[(int)FirstName.Value],
  SirName = s.Split(',')[(int)sirName.Value],
  garde = s.Split(',')[(int)Grade.Value] });

今、私Splitは同じ引数で、同じオブジェクトで関数を何度も使用しています。

ランバダ式を使い続けて、この関数呼び出しを減らす方法はありますか?

私のコーディングに関する他のコメントは大歓迎です

4

2 に答える 2

7

はい、次のように、最初ので1回分割しSelect、結果をチェーンの2番目に渡すことができますSelect

var result = FullFile
    .Split('\n')
    .Select(line => line.Split(','))
    .Select(tt => new 
        { FirstName = tt[(int)FirstName.Value],
          SirName = tt[(int)sirName.Value],
          garde = tt[(int)Grade.Value] });
于 2012-12-26T20:15:26.430 に答える
4

これを試して:

var result = from var s in FullFile.Split('\n')
                  let x = s.Split(',')
                  select new {
                                FirstName = x[(int)FirstName.Value],
                                SirName = x[(int) SirName.Value],
                                Grade = x[(int) Grade.Value]
                             };
于 2012-12-26T20:19:04.460 に答える