Как я могу сортировать общий список 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();
}
}
4 ответа:
С 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();