Вы можете использовать PInvoke для получения быстрого и хорошего результата:
class AlphanumericComparer : IComparer<string>
{
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
static extern int StrCmpLogicalW(string s1, string s2);
public int Compare(string x, string y) => StrCmpLogicalW(x, y);
}
Вы можете использовать его как AlphanumComparatorFast
из вышеприведенного ответа.