我怎样才能sortinggenerics列表DESC和ASC?

我怎样才能sortinggenerics列表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,列表本身正在sorting。 用Linq,你得到一个有序的列表枚举,但列表本身并没有改变。 如果你想改变列表,你可以改变Linq方法

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

没有Linq:

上升:

 li.Sort(); 

降:

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

用linq,使用Sort()然后Reverse()它。

非常简单的方法来以降序对int值进行sorting:

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

希望这有助于!