在C#中排序字符串数组

19 c# arrays sorting

也许这听起来很奇怪,但经过长时间的编程后,我才开始进行数组排序.一切都如我所料,直到我试图对包含两个相同字符串的字符串数组进行排序.让我们来看看:

假设有以下内容:

string[] testArray = new string[]
    {
        "aa",
        "ab",
        "ac",
        "ad",
        "ab",
        "af"
    };

Array.Sort(testArray, StringComparer.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到一个空值的数组.我知道这种行为是因为数组中的值不是不同的值.对此有更好的解释吗?如何对非独特数组进行排序?

Ste*_*cya 50

此代码段正常运行 在此输入图像描述


Zeb*_*ebi 9

如果您对数字有疑问(例如将按1、10、12、2排序的1、2、10、12),则可以使用LINQ

var arr = arr.OrderBy(x=>x).ToArray();
Run Code Online (Sandbox Code Playgroud)