簡體   English   中英

AppSettings按值查找鍵

[英]AppSettings find key by value

我希望這是一個非常簡單的問題。

我想在Web.config中找到AppSettings中的某個鍵,如果我有值的話

因此,為了保持簡單,可以通過指定值而不是鍵來查找AppSettings條目

<appSettings>
  <add key="my:Hello" value="world"/>
  <add key="my:Test" value="New"/>
  <add key="my:Test2" value="SecondThing"/>
  etc...
</appSettings>

讓我說我的代碼world里面有一個地方,我想找到appsetting的關鍵Hello 有沒有可能這樣做?

我不想問我為什么要這樣做或者只是將其保存在某個數據庫中的答案。

你可以這樣做:

var matches = ConfigurationManager.AppSettings.AllKeys.Select(t => 
new { Key = t, Value = 
ConfigurationManager.AppSettings[t] }).Where(i => i.Value == "world");

(顯然這會返回一個鍵/值對,你可以添加.Select(k => k.Key);來獲取密鑰。另請注意,使用where返回可能的倍數,你可以使用SingleOrDefault / FirstOrDefault作為替代)

您可以檢索所有密鑰並找到包含該值的密鑰:

foreach (string key in ConfigurationManager.AppSettings)
{
    if (ConfigurationManager.AppSettings[key] == "world") 
    {
        return key;
    }
}
var settings = ConfigurationManager.AppSettings;
var keys = settings.AllKeys.Where(k => settings[k] == "world");

但請注意 - 值不是唯一的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM