加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#list.OrderBy根本不工作?

发布时间:2020-12-16 10:41:24 所属栏目:百科 来源:网络整理
导读:参见英文答案 Linq OrderBy not Working within If statement????????????????????????????????????4个 我很难理解list.OrderBy是如何工作的,我不明白我做错了什么……我觉得这很容易让我在某个地方犯了一些愚蠢的错误,或者说它只是以我理解的方式工作.无论
参见英文答案 > Linq OrderBy not Working within If statement????????????????????????????????????4个
我很难理解list.OrderBy是如何工作的,我不明白我做错了什么……我觉得这很容易让我在某个地方犯了一些愚蠢的错误,或者说它只是以我理解的方式工作.无论如何,我想要做的是从属性中排序一个列表,我做了一个简单的程序来说明我的意思.

class Hero
    {
        public int level;
        public Hero(int level)
        {
            this.level = level;
        }

        static void Main(string[] args)
        {
            Hero hero1 = new Hero(1);
            Hero hero3 = new Hero(3);
            Hero hero2 = new Hero(2);

            List<Hero> list = new List<Hero>();
            list.Add(hero1);
            list.Add(hero3);
            list.Add(hero2);
            list.OrderBy(x => x.level).ToList();
            foreach (Hero x in list)
            {
                Console.WriteLine(x.level);
            }
        }
    }

这给出了输出:

1
3
2

虽然我想输出:

1
2
3

任何人都可以向我解释为什么它不这样做以及我如何解决它?我对c#很新.

解决方法

您只需要指定OrderBy返回的内容.

list = list.OrderBy(x => x.level).ToList();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读