Как отсортировать массив строк по алфавиту? - PullRequest
8 голосов
/ 30 июня 2010

У меня есть массив из многих строк. Как отсортировать строки по алфавиту?

Ответы [ 3 ]

20 голосов
/ 30 июня 2010

Звучит так, как будто вы просто хотите использовать метод Array.Sort.

Array.Sort(myArray)

Существует много перегрузок, некоторые из которых принимают пользовательские компараторы (классы или делегаты), но по умолчанию сортировка должна выполняться по алфавиту (по возрастанию), как вам кажется.

2 голосов
/ 30 июня 2010
class Program    
{
    static void Main()
    {
        string[] a = new string[]
        {
            "Egyptian",
            "Indian",
            "American",
            "Chinese",
            "Filipino",
        };
        Array.Sort(a);
        foreach (string s in a)
        {
            Console.WriteLine(s);
        }
    }
}
1 голос
/ 19 мая 2013

Array.Sort также обеспечивает предикат-перегрузку.Здесь вы можете указать свое поведение сортировки:

Array.Sort(myArray, (p, q) => p[0].CompareTo(q[0]));

Вы также можете использовать LINQ для сортировки массива:

string[] myArray = ...;
string[] sorted = myArray.OrderBy(o => o).ToArray();

LINQ также позволяет сортировать 2D-массив:

string[,] myArray = ...;
string[,] sorted = myArray.OrderBy(o => o[ROWINDEX]).ThenBy(t => t[ROWINDEX]).ToArray();

Поведение сортировки LINQ по умолчанию также в алфавитном порядке.Вы можете изменить это, используя вместо этого OrderByDescending () / ThenByDescending ().

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