我有一个消息列表.每条消息都有一个类型.
public enum MessageType
{
Foo = 0,
Bar = 1,
Boo = 2,
Doo = 3
}
Run Code Online (Sandbox Code Playgroud)
枚举名称是任意的,无法更改.
我需要返回列表排序为:Boo,Bar,Foo,Doo
我目前的解决方案是创建一个tempList,按我想要的顺序添加值,返回新列表.
List<Message> tempList = new List<Message>();
tempList.AddRange(messageList.Where(m => m.MessageType == MessageType.Boo));
tempList.AddRange(messageList.Where(m => m.MessageType == MessageType.Bar));
tempList.AddRange(messageList.Where(m => m.MessageType == MessageType.Foo));
tempList.AddRange(messageList.Where(m => m.MessageType == MessageType.Doo));
messageList = tempList;
Run Code Online (Sandbox Code Playgroud)
我怎么能用IComparer做到这一点?
在C#中,有"标准"初始化技术{Property1 ="a",Property2 ="b"},并且有一些特殊的集合变体(列表和字典).{value1,value2}和{{"key1",value1},{"key2",value2}}.
我想为树数据类型提供一个递归对象初始化器,但我不知道是否有任何方法可以自定义该机制.我想要一些看起来像s表达的东西.{item1 {item2 item3 item4} {item5 item6}}
我是通过构造函数来做的,但我想要一个更简洁的语法.