可能重复:
C# associative array
我决定最近学习c#。我以前做了一些PHP。我看到c#有字典。这相当于php中的关联数组吧?据我所知,字典不会像php关联数组一样维护插入顺序吗?如果插入顺序很重要,我应该使用其他一些等价物吗?
感谢
答案 0 :(得分:4)
字典不保证保留插入顺序,所以不:你不能依赖它(虽然很难强制它打破这个)。如果插入顺序很重要,则需要创建一个混合类,可能为插入的顺序封装List<T>
,并为索引编制Dictionary<TKey,T>
。
答案 1 :(得分:2)
您可能想查看Power Collections。我相信他们的实施能够满足您的需求。
答案 2 :(得分:1)
System.Collections.Specialized
命名空间中有一个OrderedDictionary类,但遗憾的是它不是通用的。
没有内置的通用字典类可以保留插入顺序。如果插入订单非常重要,您必须自己动手或查看第三方实施(如Marc&amp; Kent建议的那样)。
答案 3 :(得分:1)
PHP关联数组转换为XmlRpcStruct类型。请参阅XML-RPC spec.
在C#中,使用XmlRpcStruct或struct来表示PHP关联数组。
这是一个经过测试的解决方案,而不是一个随意的建议。