반응형
Enum에 숫자가 포함되어 있는지 확인하는 방법은 무엇입니까?
다음과 같은 Enum이 있습니다.
public enum PromotionTypes
{
Unspecified = 0,
InternalEvent = 1,
ExternalEvent = 2,
GeneralMailing = 3,
VisitBased = 4,
PlayerIntroduction = 5,
Hospitality = 6
}
이 Enum에 내가 제공 한 숫자가 포함되어 있는지 확인하고 싶습니다. 예 : 내가 4를 줄 때 Enum은 그것을 포함하므로 True를 반환하고 싶습니다 .7을 줄 경우이 Enum에는 7이 없으므로 False를 반환합니다. Enum.IsDefine을 시도했지만 String 값만 확인합니다. 어떻게 할 수 있습니까?
이 IsDefined
메서드에는 두 개의 매개 변수 가 필요합니다 . 첫 번째 매개 변수는 검사 할 열거 유형입니다 . 이 유형은 일반적으로 typeof 표현식을 사용하여 얻습니다. 두 번째 매개 변수는 기본 개체로 정의됩니다 . 찾을 상수 이름이 포함 된 문자열 또는 정수 값을 지정하는 데 사용됩니다. 반환 값은 값이 존재하면 true이고 존재하지 않으면 false 인 부울입니다.
enum Status
{
OK = 0,
Warning = 64,
Error = 256
}
static void Main(string[] args)
{
bool exists;
// Testing for Integer Values
exists = Enum.IsDefined(typeof(Status), 0); // exists = true
exists = Enum.IsDefined(typeof(Status), 1); // exists = false
// Testing for Constant Names
exists = Enum.IsDefined(typeof(Status), "OK"); // exists = true
exists = Enum.IsDefined(typeof(Status), "NotOK"); // exists = false
}
이 시도:
IEnumerable<int> values = Enum.GetValues(typeof(PromotionTypes))
.OfType<PromotionTypes>()
.Select(s => (int)s);
if(values.Contains(yournumber))
{
//...
}
당신은 사용해야합니다 Enum.IsDefined
.
Enum.IsDefine을 시도했지만 String 값만 확인합니다.
적어도 내 컴퓨터에서 문자열 값과 int (기본) 값을 모두 확인할 것이라고 100 % 확신합니다.
문자열 값의 열거 형을 확인하고 사용하고 싶을 수도 있습니다.
if(Enum.TryParse(strType, out MyEnum myEnum)))
{
// use myEnum
}
참고 URL : https://stackoverflow.com/questions/12291953/how-to-check-if-a-enum-contain-a-number
반응형
'developer tip' 카테고리의 다른 글
Blogger에서 구문 하이 라이터를 설정하려면 어떻게합니까? (0) | 2020.11.23 |
---|---|
함수 서명에서 변수 이름 앞의 * 및 **는 무엇을 의미합니까? (0) | 2020.11.23 |
bower로 특정 분기의 최신 개정 지정 (0) | 2020.11.23 |
CocoaPods를 사용할 때 '해당 모듈 없음' (0) | 2020.11.23 |
Eclipse / Java-R.string. *의 값은 int를 반환합니까? (0) | 2020.11.23 |