Как я могу заказать список?


У меня есть этот список :

IList<string> ListaServizi = new List<string>() { };

Как я могу заказать его из-за струны внутри него? Алфавитный и по возрастанию.

5 86

5 ответов:

ListaServizi = ListaServizi.OrderBy(q => q).ToList();

можно использовать вроде

List<string> ListaServizi = new List<string>() { };
ListaServizi.Sort();

другие ответы правильны, чтобы предложить Sort, но они, кажется, упустили тот факт, что место хранения набирается как IList<string. Sort не является частью интерфейса.

если вы знаете, что ListaServizi всегда будет содержать List<string>, вы можете либо изменить его объявленный тип, либо использовать приведение. Если вы не уверены, вы можете проверить типа:

if (typeof(List<string>).IsAssignableFrom(ListaServizi.GetType()))
    ((List<string>)ListaServizi).Sort();
else
{
    //... some other solution; there are a few to choose from.
}

возможно, более идиоматично:

List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
    typeCheck.Sort();
else
{
    //... some other solution; there are a few to choose from.
}

если вы знаете, что ListaServizi иногда будет держать другой реализация IList<string>, оставьте комментарий, и я добавлю предложение или два для сортировки его.

ListaServizi.Sort();

сделает это за вас. Это достаточно просто со списком строк. Вы должны быть немного умнее, если сортировка объектов.

        List<string> myCollection = new List<string>()
        {
            "Bob", "Bob","Alex", "Abdi", "Abdi", "Bob", "Alex", "Bob","Abdi"
        };

        myCollection.Sort();
        foreach (var name in myCollection.Distinct())
        {
            Console.WriteLine(name + " " + myCollection.Count(x=> x == name));
        }

выход: Абди 3 Алекс 2 Боб 4