我该如何排序泛型列表DESC和ASC? [英] How can I sort generic list DESC and ASC?

查看:167
本文介绍了我该如何排序泛型列表DESC和ASC?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何排序泛型列表DESC和ASC?随着LINQ和LINQ没有?我使用VS2008。

 类节目
{
    静态无效的主要(字串[] args)
    {
        名单< INT> LI =新的名单,其中,INT>();

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

        li.Sort();

        的foreach(李INT项)
        {
            Console.WriteLine(item.ToString()+\ N);
        }

        Console.ReadKey();
    }
}
 

解决方案

使用LINQ

  VAR ascendingOrder = li.OrderBy(I = I标记);
变种descendingOrder = li.OrderByDescending(ⅰ= I标记);
 

如果没有的LINQ

  li.Sort((A,B)=> a.CompareTo(B)); //升序排序
li.Sort((A,B)=> -1 * a.CompareTo(b))的; //降序排序
 

请注意,如果没有LINQ中,该列表本身进行排序。使用LINQ,你得到的名单的有序枚举,但列表本身并没有改变。如果要变异的名单,你会改变LINQ的方法类似。

  LI = li.OrderBy(I = I标记).ToList();
 

How can I sort generic list DESC and ASC? With LINQ and without LINQ? I'm using 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();
    }
}

解决方案

With Linq

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

Without Linq

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

Note that without Linq, the list itself is being sorted. With Linq, you're getting an ordered enumerable of the list but the list itself hasn't changed. If you want to mutate the list, you would change the Linq methods to something like

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

这篇关于我该如何排序泛型列表DESC和ASC?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆