• 締切済み

C#でこれをLINQにできますか

タイトル通りですが、以下のコードをLINQに書き直せますか? 書き直せるとするとどうなりますでしょうか。 よろしくお願いします。 foreach (string file in Directory.GetFiles(dirPath))   if (!File.Exists(file)) return;

みんなの回答

回答No.1

「LINQで書く」をどう捕らえるかですが, if (Directory.EnumerateFiles(dirPath).Any(f => !File.Exists(f))) return; または if (!Directory.EnumerateFiles(dirPath).All(f => File.Exists(f))) return; ということでしょうか。 クエリ構文だと,Anyを使えないので (ref: http://msdn.microsoft.com/ja-jp/library/bb534972.aspx ),結局は foreach (var file in from f in Directory.EnumerateFiles(dirPath) where !File.Exists(f) select f) { return; // 存在したらreturn。 } のように書くことになるかと想います。 ※LINQ でのクエリ構文とメソッド構文 (C#) http://msdn.microsoft.com/ja-jp/library/bb397947.aspx

関連するQ&A