9673


下のプログラムのような方法を検索しても古い記事しかでてきません。  
もう少し新しいアルゴリズム、簡潔なものはありませんか？

[code]

    // 二つのファイルの最終書き込み日時を取得して比較するメソッド
    static int CompareLastWriteTime(string fileX, string fileY)
    {
        return DateTime.Compare(File.GetLastWriteTime(fileX), File.GetLastWriteTime(fileY));
    }
    
    static void Main()
    {
        // カレントディレクトリ直下にあるすべてのファイルを取得する
        string[] files = Directory.GetFiles(".");
    
        // 取得したすべてのファイルを最終書き込み日時順でソートする)
        Array.Sort(files, CompareLastWriteTime);
    
        // ソートした結果を表示
        foreach (string file in files) {
            // ファイル名と最終書き込み日時を表示
            Console.WriteLine("{0} {1}", File.GetLastWriteTime(file), file);
        }
    }
    
[/code]


CC BY-SA 3.0
2015-04-29T23:08:18.307
9672
2017-06-19T05:08:01.080
2017-06-19T05:08:01.080
5793
7973
question
c#
ファイル一覧を更新日時でソートするこのプログラムを、もっと簡潔にできないか


「新しいアルゴリズム」は分かりませんが、「簡潔なもの」ならLINQを使うというのはどうですか？

[code]

    static void Main()
    {
        var files = Directory.GetFiles(".").OrderBy(f => File.GetLastWriteTime(f));
    
        foreach (string file in files)
        {
            Console.WriteLine("{0} {1}", File.GetLastWriteTime(file), file);
        }
    }
    
[/code]


CC BY-SA 3.0
2015-04-29T23:29:34.467
9673
2015-04-29T23:29:34.467
8078
9672
answer