如何使用自定义比较器以不同的词法顺序对数组进行排序?

Kio*_*oan 5 c# sorting compare

所以,我对 C# 很陌生,我正在尝试使用自定义比较器对数组进行排序。

我创建了一个类:

class MySorter : IComparer
{
    public int Compare(object x, object y)
    {
        var chars = "jngmclqskrzfvbwpxdht";
        if (chars.IndexOf((char)x) < chars.IndexOf((char)y))
            return -1;
        return chars.IndexOf((char)x) > chars.IndexOf((char)y) ? 1 : 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个充满单词的数组。我可以使用此比较进行排序的准确程度如何?

Sim*_* Me 8

我认为你需要的是这个。声明一个排序方法,就像你已经做的那样。

public static int CompareStrings(string s1, string s2)
{
    // TODO: your code here
}
Run Code Online (Sandbox Code Playgroud)

...并指定您需要使用的功能。

string[] myStrings = { ... };
Array.Sort(myStrings, CompareStrings);
Run Code Online (Sandbox Code Playgroud)

如果您使用泛型类,您也可以按如下方式实现:

List<string> myStrings = ...;
myStrings.Sort(CompareStrings);
Run Code Online (Sandbox Code Playgroud)