在c#中对列表进行排序 [英] Sorting a list in c#

查看:96
本文介绍了在c#中对列表进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我根据优先级值对列表进行排序,它是整数

I am sorting a list based on priority value and it is integer

lstRecData = lstRecData.OrderBy(x => x.strRecPriority).Reverse().ToList();



但是输出没有改变它显示4,3,2而不是2,3,4


But the ouput is not changed it is showing 4,3,2 instead 2,3,4

推荐答案

你好..



在你的代码行做一点改变..



将其更改为



Hi..

Make little bit change in your code line ..

change it to

lstRecData = lstRecData.OrderBy(x => x.strRecPriority).ToList();





以下是示例代码





Here is the sample code

class Program
    {
        static void Main(string[] args)
        {
            List<priority> lstRecData = new List<priority>();

            priority obj1 = new priority();
            priority obj2 = new priority(); 
            priority obj3 = new priority();
            obj1.strRecPriority = "2";
            obj2.strRecPriority = "1";
            obj3.strRecPriority = "3";

            lstRecData.Add(obj1);
            lstRecData.Add(obj2);
            lstRecData.Add(obj3);

            lstRecData = lstRecData.OrderBy(x => x.strRecPriority).ToList();
            foreach (priority obj in lstRecData)
            {
                Console.WriteLine(obj.strRecPriority);  
            }

        }
    }
    public class priority
    {
        public string strRecPriority { get; set;}
    }
</priority></priority>





只要避免Reverse()。它就没事了。
Hi
Just avoid Reverse().it will be fine.
List<order> lstRecData = lstRecData.OrderBy(x => x.strRecPriority).ToList();</order>


尝试此示例代码:

Try this sample code:
using System;
using System.Collections.Generic;
using System.Linq;


public class SomeClass
{
    public string name { get; set; }
    public int strRecPriority { get; set; }

    public SomeClass(string name, int strRecPriority)
    {
        this.name = name;
        this.strRecPriority = strRecPriority;
    }
}

public class Program
{
    public static void Main()
    {
        List<SomeClass> list = new List<SomeClass>();
        list.Add(new SomeClass("Apple", 100));
        list.Add(new SomeClass("Banana", 50));
        list.Add(new SomeClass("Orange", 97));
        list.Add(new SomeClass("Pear", 110));
        list.Add(new SomeClass("Strwberry", 88));

        var result1 = list.OrderByDescending(a => a.strRecPriority).ToList<SomeClass>();

        foreach (SomeClass o in result1)
        {
            Console.WriteLine(o.name + " " + o.strRecPriority);
        }
    }
}


这篇关于在c#中对列表进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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