对于web.config
和app.config
,当我拨打ConfigurationManager.AppSettings.AllKeys
时,是否按照它们在配置文件中出现的顺序获取密钥?
我无法在MSDN上找到任何提及。
答案 0 :(得分:0)
ConfigurationManager.AppSettings
的类型为NameValueCollection
,其顺序尚未确定。 AllKeys
基于NameValueCollection
返回字符串数组,因此其顺序也将不确定。
此类型的集合不保留元素的排序,和 枚举集合时不保证特定的排序。
如果您想要明确的订单,请使用
ConfigurationManager.AppSettings.AllKeys.OrderBy(r=> r)
答案 1 :(得分:0)
为什么重要?它是一个键控集合:如果订单对您很重要,请按照您想要的顺序进行。您还应该记住<appsettings>
中的数据来自多个来源。它是从
machine.config
)app.config
)web.config
web.config
个文件。此外,ConfigurationManager.AppSettings
是NameValueCollection
。我怀疑 - 但不确定 - 它的后备存储是一个哈希表。因此,您将看到的订单与
以不同顺序插入的同一组键在检索时会显示不同的顺序。