2017-07-25 100 views
0
DirectoryInfo dir = new DirectoryInfo("C:\Temp"); 
IEnumerable<FileInfo> filesList = dir.getFiles("*.zip", SearchOption.TopDirectoryOnly); 

我試着用testList.OrderBy(f=>f.Name)之類的東西,但它不起作用。它給了我一個錯誤。如何對IEnumerable進行排序<FileInfo> testList?

+2

你得到的錯誤是什麼?此外,請標記您正在查看的語言。這讓問題被可能知道你在做什麼的人看到 – LordBaconPants

+0

就像LordBaconPants所說的,如果你提供了更多的代碼行(最好在你引用的行後面),它會使成員更容易回答你的問題。 – Kodaloid

回答

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); 
    } 
}