如何排序的FileInfo数组[]数组、FileInfo

2023-09-02 02:10:02 作者:Wonder Boy

我有以下的code

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

我想对列表进行文件名进行排序。

I would like to sort the list by filename.

这是怎么做的,因为快速,轻松地尽可能使用.NET V2。

How is this done, as quickly and easily as possible using .net v2.

推荐答案

呼叫的Array.Sort,传递一个比较代表:

Call Array.Sort, passing in a comparison delegate:

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

在C#3那么这就变得稍微简单:

In C# 3 this becomes slightly simpler:

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

或者你也可以使用 StringComparer 如果你想使用不区分大小写排序顺序:

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

(或使用的String.Compare(x.Name,y.Name,真),或任何比较字符串的很多其他方式:)

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