2015年07月15日

LINQ to Objectサンプル(20): 配列の全ての要素に対し、ある変換処理をする(2

  
前回の続きです。

今回は、テキストファイルから読み込んだ各行に行番号を振った結果を リストに格納し、それをコンソールに出力する例です。


■ループを使ったコード
var list = new List<string>();
int lno = 1;
foreach (var line in File.ReadLines("sample.txt")) {
    list.Add(string.Format("{0,4}: {1}",lno++,line));
}
list.ForEach(line => Console.WriteLine(line));

ここでは、FileクラスのReadLinesメソッドをっています。
このReadLinesメソッドは、自分で、ファイルのopen、read, close のコードを書かなくてよいので便利です。


■LINQを使ったコード
var lines = File.ReadLines("sample.txt")
                .Select((s, n) => string.Format("{0,4}: {1}", n+1,s));
lines.ToList().ForEach(file => Console.WriteLine(file));


Select拡張メソッドには、インデックスを扱えるメソッドも利用されています。このSelectメソッドを使い、 各行の先頭に行番号を付加しています。



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52426778