eagle999
eagle999

Reputation: 251

how to sort a string array by alphabet?

I've got a array of many strings. How can I sort the strings by alphabet?

Upvotes: 9

Views: 43711

Answers (3)

Pranay Rana
Pranay Rana

Reputation: 176896

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);
        }
    }
}

Upvotes: 2

0xDEADBEEF
0xDEADBEEF

Reputation: 3431

Array.Sort also provides a Predicate-Overload. You can specify your sorting-behaviour there:

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

You can also use LINQ to Sort your array:

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

LINQ also empoweres you to sort a 2D-Array:

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

The default sorting-behaviour of LINQ is also alphabetically. You can reverse this by using OrderByDescending() / ThenByDescending() instead.

Upvotes: 2

Noldorin
Noldorin

Reputation: 147290

Sounds like you just want to use the Array.Sort method.

Array.Sort(myArray)

There are many overloads, some which take custom comparers (classes or delegates), but the default one should do the sorting alphabetically (ascending) as you seem to want.

Upvotes: 22

Related Questions