C # Сортировка чисел - PullRequest
       21

C # Сортировка чисел

0 голосов
/ 22 декабря 2010

У меня есть массив чисел, перепутанный с 0-9.

Как отсортировать их в порядке возрастания?

Array.Sort не работает для меня.Есть ли другой способ сделать это?

Заранее спасибо.

РЕДАКТИРОВАТЬ: Array.Sort дает мне эту ошибку.

Аргумент 1: не может преобразовать из 'string' в 'System.Array'

Прямо сейчас это дает мне этот вывод:

0) VersionInfo.xml

2) luizafroes_singapore2951478702.xml

3) virua837890738.xml

4) darkwizar9102314425644.xml

* 22* 5) snarterz_584609551.xml

6) alysiayeo594136055.xml

1) zan-n2306499277.xml

7) zhangliyi_memories9326687990303630 * 10 899 * 290 290 930 * 10 * 8 * 10 * 8 * 10) 899 * 290) 877 * 10) 899 * 290) 877 * 10) 899 * 290 * 10) * 8 * 8 * 8 * 8 * 8 * 8) 10) * 9 * 8 * 8 * 8 * 8 * 8 * 8) 8) 929) 929 * 10) 830 * 8) 830 929) 830 * 290) 830 * 8) 899 * 290) 830 * 290) 830 * 8) 829 * 290) 877 * 10) 829) 929 811) 930 911 811 811) 930 911 977 811 911 977 811) 930 911 977 811) 1077 911 977 811) 1077 929) 899.xml

9) config.xml

k - цифры от 0-9

                    string[] valnames = rk2.GetValueNames();

                foreach (string k in valnames)
                {
                    if (k == "MRUListEx")
                    {
                        continue;
                    }

                    Byte[] byteValue = (Byte[])rk2.GetValue(k);

                    UnicodeEncoding unicode = new UnicodeEncoding();
                    string val = unicode.GetString(byteValue);

                    Array.Sort(k); //Error here
                    richTextBoxRecentDoc.AppendText("\n" + k + ") " + val + "\n");
                }

Ответы [ 3 ]

4 голосов
/ 22 декабря 2010

Ваша проблема в том, что k - это не массив, а строка!

У меня такое ощущение, что ты хочешь это сделать:

string[] valnames = rk2.GetValueNames();
valnames = valnames.OrderBy (s => int.Parse(s)).ToArray();

for (int i= 0 ; i < balnames.Lenght ; i++)
{
    k = valenames[i];
    if (k == "MRUListEx")
    {
        continue;
    }
    Byte[] byteValue = (Byte[])rk2.GetValue(k);

    UnicodeEncoding unicode = new UnicodeEncoding();
    string val = unicode.GetString(byteValue);

    richTextBoxRecentDoc.AppendText("\n" + i + ") " + val + "\n");
}
0 голосов
/ 22 декабря 2010

Вы пытаетесь отсортировать строку.Это невозможно.

Этот код даст вам желаемый результат:

string[] valnames = rk2.GetValueNames();

for (int i = valnames.Length - 1; i >= 0; i--)
{
    string k = valnames[i];
    if (k == "MRUListEx")
        continue;

    Byte[] byteValue = (Byte[])rk2.GetValue(k);
    UnicodeEncoding unicode = new UnicodeEncoding();
    string val = unicode.GetString(byteValue);

    richTextBoxRecentDoc.AppendText("\n" + k + ") " + val + "\n");
}
0 голосов
/ 22 декабря 2010

Вы уверены, что у вас есть массив в целых числах или вы сохранили массив System.Object, и в этом случае у вас будут проблемы с начальным пробелом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...