の機能は、他の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()渡されます。MSDN: 拡張メソッド (C#)this
無効なブール文字列値を持つすべての設定キーのリストを取得するには、次の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扱っているので、 を返すことを知っています。必要に応じて、結果からまたはを作成できます。stringkeyIEnumerable<string>List<string>string[]