的功能IsValidBooleanString()
可能在其他地方有用。我建议将它放在扩展类中:
public static class StringExtender
{
static readonly string[] validBooleanStrings = { "True", "False", "Yes", "No" };
public static bool IsValidBooleanString(this string value)
{
return ValidBooleanStrings.Contains(value, StringComparer.OrdinalIgnoreCase);
}
}
有人会说为单个方法创建扩展类有点过头了,但事实并非如此,它使您的代码模块化和可重用。更不用说当你遇到类似的场景时,你可以在这里添加更多的扩展方法。
现在所有string
对象都.IsValidBooleanString()
附加了一个方法,并自动将它们自己 ( this
) 传递给它。MSDN:扩展方法 (C#)
为了检索具有无效布尔字符串值的所有设置键的列表,我将使用LINQ
查询:
var settings = ConfigurationManager.AppSettings;
// Gets all the keys for values that are invalid boolean strings.
var invalidKeys = from key in settings.Keys
where !settings[key].IsValidBooleanString()
select key;
// If you want a list...
var invalidKeyList = invalidKeys.ToList<string>();
// If you want an array...
var invalidKeyArray = invalidKeys.ToArray<string>();
LINQ
查询IEnumerable<>
根据您提供的内容返回值。由于我在select
输入一个string
类型 ( key
),它知道给我一个IEnumerable<string>
. 然后,您可以根据需要创建一个List<string>
或string[]
从结果。