Как я могу отсортировать универсальный список 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 ()
it.