【发布时间】:2019-05-28 01:35:13
【问题描述】:
有一些应用程序对象列表 应用程序具有属性状态,并保存值 {"Red",Yellow,Blue ,Green and Orange")
我的要求是按自定义排序顺序对列表进行排序
“红色”应该排在第一位 “蓝”二 “黄”三 最后是“绿色”
如何在这种情况下实现排序。 请帮忙 。
提前致谢
【问题讨论】:
标签: c# entity-framework linq linq-to-entities
有一些应用程序对象列表 应用程序具有属性状态,并保存值 {"Red",Yellow,Blue ,Green and Orange")
我的要求是按自定义排序顺序对列表进行排序
“红色”应该排在第一位 “蓝”二 “黄”三 最后是“绿色”
如何在这种情况下实现排序。 请帮忙 。
提前致谢
【问题讨论】:
标签: c# entity-framework linq linq-to-entities
好吧,您可以创建一个排序值列表,然后按其中的索引排序:
var sortedValues = new List<string> {"Red", "Blue", "Yellow", "Green", "Orange"};
var result = myList.OrderBy(a => sortedValues.IndexOf(a.Status));
【讨论】:
使用颜色属性的 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();
}
}
【讨论】: