Linq是否保留了它收到的数组的顺序?

时间:2017-08-27 13:09:49

标签: c# linq sorting

这里有几行代码。 它获取文件列表,因为'Directory.GetFiles'不保证排序顺序,它按升序排序。 然后,它与Linq组合的正则表达式匹配。 在这种情况下,'Linq'是否保留了收到的订单? 或者,我是否必须明确&如下所示,在Linq语句的末尾冗余地附加'OrderBy'以确保其顺序?

提前致谢。

关于'GetFiles'的参考:https://msdn.microsoft.com/en-us/library/07wt70x2(v=vs.110).aspx

        string[] arstr_files = Directory.GetFiles("Log", "Log-*.csv", SearchOption.TopDirectoryOnly);
        Array.Sort(arstr_files);

        Regex regex = new Regex(@"Log\\Log-\d{4}-\d{2}-\d{2}_\d{2}_\d{2}_\d{2}\.{1}csv$", RegexOptions.Compiled);

        foreach(string str_file in arstr_files.Where(n => regex.Match(n).Success).OrderBy(n=>n))
        {
            Console.WriteLine(str_file);
        }

0 个答案:

没有答案