How to sort an array of FileInfo[]

后端 未结 4 1359
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-14 17:30

I have the following code

DirectoryInfo taskDirectory = new DirectoryInfo(this.taskDirectoryPath);
FileInfo[] taskFiles = taskDirectory.GetFiles(\"*\" + blah         


        
4条回答
  •  一向
    一向 (楼主)
    2020-12-14 18:15

    Call Array.Sort, passing in a comparison delegate:

    Array.Sort(taskFiles, delegate(FileInfo f1, FileInfo f2) {
        return f1.Name.CompareTo(f2.Name);
    });
    

    In C# 3 this becomes slightly simpler:

    Array.Sort(taskFiles, (f1, f2) => f1.Name.CompareTo(f2.Name));
    

    Or you can use a StringComparer if you want to use a case-insensitive sort order:

    Array.Sort(taskFiles,
               (x, y) => StringComparer.OrdinalIgnoreCase.Compare(x.Name, y.Name));
    

    (or use string.Compare(x.Name, y.Name, true), or any of the many other ways of comparing strings :)

提交回复
热议问题