以下语句的等效c#代码是什么?

时间:2010-09-14 04:28:54

标签: c# linq

var files = from file in  my.Computer.FileSystem.GetFiles(CurDir()) orderby file select file;

3 个答案:

答案 0 :(得分:9)

var files = from file in Directory.GetFiles(Environment.CurrentDirectory)
            orderby file
            select file;

编辑:如果您使用的是.Net 4.0,请使用Gabe答案中的代码;他提到的原因更好。如果您使用3.5,请使用此选项。

答案 1 :(得分:5)

这是较新版本的.Net的替代方案:

var files = from file in Directory.EnumerateFiles(Environment.CurrentDirectory)
            orderby file
            select file;

一般来说,最好使用EnumerateFiles而不是GetFiles,因为它在返回之前不会创建整个字符串数组。这不仅节省了数组的创建,而且允许您在读取第一个文件名后立即开始处理,而不必等到读取最后一个文件名。

您可以将GetFiles()视为EnumerateFiles().ToArray()

答案 2 :(得分:3)

我将使用其他语法执行此操作:)

var files = System.IO.Directory.EnumerateFiles(Environment.CurrentDirectory)
                               .OrderBy(f => f);