Возможный дубликат:
C # ассоциативный массив
Недавно я решил изучить c #. Сначала я сделал несколько php. Я вижу, что c # имеет словари. что эквивалентно ассоциативному массиву в php? насколько я могу сказать, что словарь не поддерживает порядок вставки, например, ассоциативные массивы php? есть ли какой-либо другой эквивалент, который я должен использовать, если порядок вставки важен?
благодаря
Словарь не гарантирует сохранение порядка вставки, поэтому нет: вы не можете полагаться на это (хотя трудно заставить его сломать это). Если порядок вставки важен, вам нужно создать гибридный класс, возможно, инкапсулировать List<T>
для вставленного порядка и Dictionary<TKey,T>
для индексации.
Возможно, вы захотите проверить Power Collections . Я считаю, что у них есть реализации, которые бы соответствовали вашим потребностям.
В пространстве имен System.Collections.Specialized
есть класс OrderedDictionary , но, к сожалению, он не является общим.
Нет встроенного, универсального словарного класса, который сохраняет порядок вставки. Если порядок вставки действительно важен, вам придется сворачивать или проверять стороннюю реализацию (как предложил Марк и Кент).
Ассоциативные массивы PHP преобразуются в тип XmlRpcStruct. См. Спецификацию XML-RPC.
В C # используйте XmlRpcStruct или struct для представления ассоциативных массивов PHP.
Это проверенное решение, а не предварительное предложение.