- 締切済み
C#でこれをLINQにできますか
タイトル通りですが、以下のコードをLINQに書き直せますか? 書き直せるとするとどうなりますでしょうか。 よろしくお願いします。 foreach (string file in Directory.GetFiles(dirPath)) if (!File.Exists(file)) return;
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Yune-Kichi
- ベストアンサー率74% (465/626)
回答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