可能是重复问题:
C#关联数组
我最近决定学习C#。之前我学过一些PHP。我看到C#有字典。这相当于PHP中的关联数组,对吗?据我所知,字典不像PHP关联数组那样保持插入顺序,对吗?如果插入顺序很重要,是否有其他等效的数据结构可以使用?
谢谢
字典不保证保留插入顺序,所以不能依赖它(尽管很难迫使它打破这一点)。如果插入顺序很重要,您需要创建一个混合类,可能将List<T>
封装为插入顺序,将Dictionary<TKey,T>
用于索引。
PHP关联数组被转换为类型XmlRpcStruct。请参阅XML-RPC规范。
在C#中,使用XmlRpcStruct或struct来表示PHP关联数组。
这是一个经过测试的解决方案,而不是一个草率的建议。
在System.Collections.Specialized
命名空间中有一个OrderedDictionary类,但不幸的是它不是通用的。
没有内置的、保留插入顺序的通用字典类。如果插入顺序真的很重要,你就得自己编写或查看第三方实现(如Marc & Kent建议的那样)。