【问题标题】:How to sort List by custom Order如何按自定义顺序对列表进行排序
【发布时间】:2019-05-28 01:35:13
【问题描述】:

有一些应用程序对象列表 应用程序具有属性状态,并保存值 {"Red",Yellow,Blue ,Green and Orange")

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

“红色”应该排在第一位 “蓝”二 “黄”三 最后是“绿色”

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

提前致谢

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      相关资源
      最近更新 更多