如何按C#键自定义词典的排列?
我有一本字典如何按C#键自定义词典的排列?,c#,.net,dictionary,C#,.net,Dictionary,我有一本字典 Dictionary<string, string> myDict = new Dictionary<string, string>() { { "country", "1" }, { "state", "2" }, { "name", "3" }, { "type", "4" } }; Dictionary myDict=newdictionary() { {“国家”,“1”}, {“国家”,“2”}, {“名称”,“3”}, {“类型”,“4”
Dictionary<string, string> myDict = new Dictionary<string, string>()
{
{ "country", "1" },
{ "state", "2" },
{ "name", "3" },
{ "type", "4" }
};
Dictionary myDict=newdictionary()
{
{“国家”,“1”},
{“国家”,“2”},
{“名称”,“3”},
{“类型”,“4”}
};
我想按如下所示的特定顺序排列dictionary元素
Dictionary<string, string> myDict = new Dictionary<string, string>()
{
{ "name", "3" },
{ "type", "4" },
{ "country", "1" },
{ "state", "2" }
};
Dictionary myDict=newdictionary()
{
{“名称”,“3”},
{“类型”,“4”},
{“国家”,“1”},
{“状态”,“2”}
};
是否可以使用字典类型?如果您能给出解决方案,我将不胜感激。不,您不能依赖
词典中的顺序。它是特定于实现的,并且可以以意外的方式进行更改
在本例中,听起来您确实应该使用自定义类型,使用Country
、State
、Name
和type
属性
另一种方法是按照您想要的顺序单独列出已知密钥-您可以始终迭代该密钥并获取相应的密钥:
foreach (var key in keysInOrder)
{
Console.WriteLine("{0}: {1}", key, dictionary[key]);
}
如果您真的希望一个IDictionary
具有特定的顺序,那么您可以自己实现它,在内部维护一个键顺序作为列表和字典。但老实说,这感觉像是设计的味道。不,你不能依赖字典中的顺序。它是特定于实现的,并且可以以意外的方式进行更改
在本例中,听起来您确实应该使用自定义类型,使用Country
、State
、Name
和type
属性
另一种方法是按照您想要的顺序单独列出已知密钥-您可以始终迭代该密钥并获取相应的密钥:
foreach (var key in keysInOrder)
{
Console.WriteLine("{0}: {1}", key, dictionary[key]);
}
如果您真的希望一个IDictionary
具有特定的顺序,那么您可以自己实现它,在内部维护一个键顺序作为列表和字典。但这感觉像是设计的味道,老实说。查看查看OrderedDictionary
class。根据我的knowledge@Rob-该订单根据其算法…因此不支持自定义订单查看查看OrderedDictionary
类。根据我的knowledge@Rob-那根据其算法订购…因此不支持自定义订购