如何在c#中按键自定义字典的排列
本文关键字:自定义 字典 排列 | 更新日期: 2023-09-27 18:03:10
我有一本字典
Dictionary<string, string> myDict = new Dictionary<string, string>()
{
{ "country", "1" },
{ "state", "2" },
{ "name", "3" },
{ "type", "4" }
};
我想按照如下所示的特定顺序排列字典元素
Dictionary<string, string> myDict = new Dictionary<string, string>()
{
{ "name", "3" },
{ "type", "4" },
{ "country", "1" },
{ "state", "2" }
};
可以是字典类型吗?如果您能给出一个解决方案,我将不胜感激
不,你不能依赖Dictionary
的顺序。它是特定于实现的,并且可以以意想不到的方式更改。
在这种情况下,听起来像真的你应该有一个自定义类型,而不是Country
, State
, Name
和Type
属性。
另一种选择是按照你想要的顺序有一个已知键的单独列表——你总是可以遍历并获取适当的键:
foreach (var key in keysInOrder)
{
Console.WriteLine("{0}: {1}", key, dictionary[key]);
}
如果你真的真的想要一个特定顺序的IDictionary<,>
,你总是可以自己实现它,在内部维护一个键顺序作为一个列表和一个Dictionary<,>
。但老实说,这感觉像是一种设计的味道。