[C#] Linqと再帰でファイルの一覧表示(2)のLinqのクエリ式をメソッド構文で書き直してみた。
Func<DirectoryInfo, IEnumerable<string>> FileListUp = null; // (1)こうしておかないとエラーになる
FileListUp = dirInfo =>
{
return dirInfo.GetDirectories().Select(d => FileListUp(d))
.SelectMany(f => f) // (2)ここ、なんか他の書き方ないのかな?
.Concat(dirInfo.GetFiles().Select(f => f.FullName));
};
var di = new DirectoryInfo(".");
var list = FileListUp(di);
// 表示する
list.ToList().ForEach(s => Console.WriteLine(s));
(2)の部分のなんか微妙なんだけど、他の書き方ないのかな?
コメント