2

を使用してテキスト ファイルを読み込んでいますFile.ReadAllLines()が、File.ReadLines() を使用することもできます。ファイルを読み取った後、次のステップは結果からリストを作成することです。私のリストでは、テキスト ファイルの各エントリ/行の行番号を取得する必要があります。これはできますか?どのように?最終結果のために、リストに Index プロパティが必要です。

これが私が持っているものです:

var file = System.IO.File.ReadAllLines(path);

var lineInfo = file.AsParallel().AsOrdered()
    .Select(line => new
    {     
       // index =  **** I WANT THE INDEX/ROWNUMBER HERE ****
       lineType = line.Substring(0, 2),
       winID = line.Substring(11, 9),
       effectiveDate = line.Substring(0, 2) == EmployeeLine ? line.Substring(237, 8).ToDateTimeExact("yyyyMMdd") : null,
                    line
     })
     .ToList()
     .AsParallel();
4

2 に答える 2

4

Selectインデックスを提供するオーバーライドがあります。

したがって、選択を変更して含めることができるはずです。

var lineInfo = file.AsParallel().AsOrdered()
    .Select((line, index) => new
    {     
         ....
    }
 })
 .ToList()
 .AsParallel();

ただし、Servy が彼のコメントで指摘しているように、ファイル全体をロードして、後でもう一度繰り返す場合は、各行をストリーミング方式で処理することもできます。

ただし、フレームワークの新しい部分について学ぶには常に役立ちます。

于 2014-06-11T15:36:29.290 に答える
1

これを試すことができます:

.Select((line,index) => new
{     
   Index = index
   lineType = line.Substring(0, 2),
   // the rest of your code.
 })

また、これが使用されているリンクもあります。

于 2014-06-11T15:37:19.820 に答える