如何按自定义顺序对列表进行排序

时间:2018-12-31 15:00:57

标签: c# entity-framework linq linq-to-entities

具有一些Application对象列表 应用程序的属性状态为“ {Red”,“ Yellow”,“ Yellow”,“ Blue”,“ Blue”,“ Green”和“ Orange”)。

我的要求是以自定义排序顺序对列表进行排序

“红色”应该放在第一位 “蓝”秒 “黄”三 最后的“绿色”

在这种情况下如何实现排序。 请帮忙 。

预先感谢

2 个答案:

答案 0 :(得分:4)

好吧,您可以创建一个排序值列表,然后按其中的索引排序:

jmsContainer

答案 1 :(得分:1)

使用Id和Name of color属性定义一个新类。 创建该类的数组,并按ID对数组进行排序。

class CutomSort
    {
        class Color
        {
            public int Id;
            public string Name;
        }

        static void Main(string[] args)
        {
            Color[] input = {
                                new Color{Id=4, Name="Green"},
                                new Color{Id=3, Name="Yellow"},
                                new Color{ Id=1, Name="Red"},
                                new Color{ Id = 2, Name = "Blue" }
                            };

            IEnumerable<Color> result = input.OrderBy(x => x.Id);

            foreach (Color color in result)
            {
                Console.WriteLine($"{color.Id}-{color.Name}");
            }

            Console.ReadKey();
        }
    }