我怎样才能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);
希望这有助于!