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
)을 전달합니다.
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<>
값을 반환 :
MSDN: Extension Methods (C#)이 잘못 부울 문자열 값을 가진 모든 설정 키의 목록을 불러 오는 경우, 나는 LINQ
쿼리를 사용합니다. 나는 string
유형 (key
)에 select
을 보내고 있기 때문에 IEnumerable<string>
을 돌려 주겠다고 나옵니다. 원하는 경우 결과에서 List<string>
또는 string[]
을 만들 수 있습니다.
배열 대신'List'을 사용하고 싶습니다. –
'List invalidKeys'를 사용하고'invalidKeys.Add (value);와 함께 객체를 추가 할 것입니다. –
나는 Sandeep에 동의합니다. 'List'을 사용하여 객체를 추가 할 수 있습니다. 문자열을 사용하면 쉽게 반복 할 수 있습니다. foreach가 아닌'for' 루프를 사용하여'int i = 0; '카운터를 구현할 수 있습니다. 그런 다음이 다른 테스트를'if'로 둘러 쌉니다. –
plast1K