字典按哈希排序,而不是按序列排序



我有appsettings.json,我想把它们全部获取,并放入字典。

 var conf = configuration.GetSection("Configuration");
 var serverConf = new Dictionary<string, string>();
 foreach (var item in conf.AsEnumerable())
 {
    if (item.Value != null && item.Key != null)
    {
         serverConf.Add(item.Key, item.Value);
    }
 }

但是这段代码按我不知道,也许是哈希? 不是按顺序,不是按字母顺序。它应该是按顺序

我的应用设置:

 "Configuration": {
    "response_type": "id_token token",
    "scope": "openid profile api1",
    "start_checksession": true,
    "silent_renew": false,
  }
Dictionary<,>

保证任何特定的排序。如果需要特定的排序顺序,则应使用不同的数据结构。

但是,对于配置,我想说要求任何特定的排序本身就是一种气味。为了(比如)获得一些哈希值,需要将其转换为特定的稳定排序是可以的,但这很容易用 LINQ 完成,例如

var ordered = settings.OrderBy(pair => pair.Key);

但是,如果您确实需要"原始文件顺序",您可能希望开始使用不同的数据模型,例如表示实际 JSON 的JObject。我建议认真思考一下,你目前的愿望是否真的是一个具体的要求,以及是否有不同的方法来实现同样的更大目标。

最新更新