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
,我想找到应用程序设置的密钥 Hello
。有没有可能这样做?
我不想收到关于我为什么要这样做的问题,也不想得到诸如将其保存在某个数据库中之类的答案。
你可以这样做:
var matches = ConfigurationManager.AppSettings.AllKeys.Select(t =>
new { Key = t, Value =
ConfigurationManager.AppSettings[t] }).Where(i => i.Value == "world");
(显然这个 return 是一个 key/value 对,您可以添加 .Select(k => k.Key); 来获取密钥。还要注意,使用 where 可能会 return 倍数,您可以使用 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");
但请注意 - 值不是唯一的。
我有一个希望非常简单的问题。
如果我有值
,我想从 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
,我想找到应用程序设置的密钥 Hello
。有没有可能这样做?
我不想收到关于我为什么要这样做的问题,也不想得到诸如将其保存在某个数据库中之类的答案。
你可以这样做:
var matches = ConfigurationManager.AppSettings.AllKeys.Select(t =>
new { Key = t, Value =
ConfigurationManager.AppSettings[t] }).Where(i => i.Value == "world");
(显然这个 return 是一个 key/value 对,您可以添加 .Select(k => k.Key); 来获取密钥。还要注意,使用 where 可能会 return 倍数,您可以使用 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");
但请注意 - 值不是唯一的。