C# 如何按自定义顺序对列表排序

C# 如何按自定义顺序对列表排序,c#,entity-framework,linq,linq-to-entities,C#,Entity Framework,Linq,Linq To Entities,有一些应用程序对象的列表 应用程序具有属性状态,并保存值{红色、黄色、蓝色、绿色和橙色 我的要求是按自定义排序顺序对列表进行排序 红色应该放在第一位 蓝色秒 黄三 绿末 如何在此场景中实现排序。 请帮忙 提前感谢您可以创建一个排序值列表,然后在其中按索引排序: var sortedValues = new List<string> {"Red", "Blue", "Yellow", "Green", "Orange"}; var result = myList.OrderBy(a =

有一些应用程序对象的列表 应用程序具有属性状态,并保存值{红色、黄色、蓝色、绿色和橙色

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

红色应该放在第一位 蓝色秒 黄三 绿末

如何在此场景中实现排序。 请帮忙


提前感谢

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

var sortedValues = new List<string> {"Red", "Blue", "Yellow", "Green", "Orange"};
var result = myList.OrderBy(a => sortedValues.IndexOf(a.Status));

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

var sortedValues = new List<string> {"Red", "Blue", "Yellow", "Green", "Orange"};
var result = myList.OrderBy(a => sortedValues.IndexOf(a.Status));

使用颜色属性的Id和名称定义一个新类。 创建类的数组并按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();
        }
    }

使用颜色属性的Id和名称定义一个新类。 创建类的数组并按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();
        }
    }
可能的重复可能的重复