development

일반 목록 DESC 및 ASC를 어떻게 정렬 할 수 있습니까?

big-blog 2020. 8. 27. 08:15
반응형

일반 목록 DESC 및 ASC를 어떻게 정렬 할 수 있습니까?


일반 목록 DESC 및 ASC를 어떻게 정렬 할 수 있습니까? LINQ가 있고 LINQ가 없습니까? VS2008을 사용하고 있습니다.

class Program
{
    static void Main(string[] args)
    {
        List<int> li = new List<int>();

        li.Add(456);
        li.Add(123);
        li.Add(12345667);
        li.Add(0);
        li.Add(1);

        li.Sort();

        foreach (int item in li)
        {
            Console.WriteLine(item.ToString() + "\n");
        }

        Console.ReadKey();
    }
}

Linq와 함께

var ascendingOrder = li.OrderBy(i => i);
var descendingOrder = li.OrderByDescending(i => i);

Linq없이

li.Sort((a, b) => a.CompareTo(b)); // ascending sort
li.Sort((a, b) => -1* a.CompareTo(b)); // descending sort

Linq가 없으면 목록 자체가 정렬됩니다. Linq를 사용하면 목록의 열거 가능한 순서가 표시되지만 목록 자체는 변경되지 않았습니다. 목록을 변경하려면 Linq 메서드를 다음과 같이 변경합니다.

li = li.OrderBy(i => i).ToList();

Linq없이 :

오름차순 :

li.Sort();

내림차순 :

li.Sort();
li.Reverse();

linq가 없으면 사용 Sort()하고 사용 Reverse()하십시오.


내림차순으로 int 값으로 목록을 정렬하는 매우 간단한 방법 :

li.Sort((a,b)=> b-a);

이것이 도움이되기를 바랍니다!

참고 URL : https://stackoverflow.com/questions/3062513/how-can-i-sort-generic-list-desc-and-asc

반응형