在过去的30分钟中,我一直在寻找现有的答案,以解决我认为是一个常见的问题,但对我来说,没有什么比这更好。抱歉,如果这是骗子。
我有一个对象列表。
List<Journey> journeys;
该对象具有“状态”属性-这是一个字符串。
class Journey
{
public string Name;
public string Status;
}
我想基于此字符串进行排序,但不是按字母顺序排序。状态描述对象在旅途中的位置,即“途中”,“完成”或“错误”。当升序排序时,我希望它们以以下顺序出现:“错误”,“途中”,“完成”。 (实际上,状态不止于此,因此不能将它们重命名为按字母顺序排列)
除了使用值和排序顺序属性为“状态”创建类,然后基于该类进行排序之外,我该怎么做?还是那是最好的方法?
最佳答案
您可以在提供给Comparison委托的自定义函数中定义您的排序逻辑:
List<Journey> list = new List<Journey>();
list.Sort(new Comparison<Journey>((Journey source, Journey compare) =>
{
// here is my custom compare logic
return // -1, 0 or 1
}));