如何排序IEnumerable <fileinfo> testList?

时间:2017-07-25 21:53:46

标签: c# fileinfo

DirectoryInfo dir = new DirectoryInfo("C:\Temp");
IEnumerable<FileInfo> filesList = dir.getFiles("*.zip", SearchOption.TopDirectoryOnly);   

我尝试使用testList.OrderBy(f=>f.Name)之类的东西,但它不起作用。它给了我一个错误。

1 个答案:

答案 0 :(得分:0)

  

我试过......但它没有用。它给了我一个错误

您有正确的想法,使用LINQOrderBy,并且可能在代码的其他部分遇到错误。一个可能的罪魁祸首是路径中未转义的反斜杠,需要@\\

以下代码块在Linqpad中运行时没有错误来过滤和排序c:\temp文件夹中的.txt文件。将OrderBy更改为OrderByDescending  按预期反转结果。

void Main()
{
    DirectoryInfo dir = new DirectoryInfo(@"C:\Temp");
    IEnumerable<FileInfo> filesList = dir.GetFiles("*.txt", SearchOption.TopDirectoryOnly);

    // Iterate on the sorted set
    foreach(var fileInfo in filesList.OrderBy(fileInfo => fileInfo.Name))
    {
        Console.WriteLine(fileInfo.Name);
    }
}