【问题标题】:How to sort IEnumerable<FileInfo> testList?如何对 IEnumerable<FileInfo> testList 进行排序?
【发布时间】:2017-07-25 21:53:46
【问题描述】:
DirectoryInfo dir = new DirectoryInfo("C:\Temp");
IEnumerable<FileInfo> filesList = dir.getFiles("*.zip", SearchOption.TopDirectoryOnly);   

我用testList.OrderBy(f=&gt;f.Name) 之类的东西试过这个,但它不起作用。它给了我一个错误。

【问题讨论】:

  • 您遇到的错误是什么?另外,请标记您正在查看的语言。这会让可能知道你在做什么的人看到这个问题
  • 就像 LordBaconPants 所说的,如果您提供更多代码行(最好在您引用的行之后),它会让会员更容易回答您的问题。

标签: c# fileinfo


【解决方案1】:

我试过......但它不起作用。它给了我一个错误

您的想法是正确的,使用了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);
    }
}

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2014-10-14
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    相关资源
    最近更新 更多