应用设置按值查找键
本文关键字:查找 设置 应用 | 更新日期: 2023-09-27 18:35:21
我希望我有一个非常简单的问题。
我想从 Web.config 中的应用程序设置中找到某个键,如果我有值
因此,为了简单起见,是否有可能通过指定值而不是键来查找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");
(显然,这返回了一个键/值对,您可以添加 .选择(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");
但请注意 - 值不是唯一的。