반응형
문자열을 열거 형으로 캐스팅
이 질문에 이미 답변이 있습니다.
- C # 22 답변 에서 문자열을 열거 형으로 변환
파일 내용을 읽고 있으며 이와 같은 정확한 위치에서 문자열을 가져옵니다.
string fileContentMessage = File.ReadAllText(filename).Substring(411, 3);
출력은 항상 Ok
또는Err
다른쪽에 MyObject
는 ContentEnum
이런식이 있습니다
public class MyObject
{
public enum ContentEnum { Ok = 1, Err = 2 };
public ContentEnum Content { get; set; }
}
이제 클라이언트 측에서 다음과 같은 코드를 사용하고 싶습니다 (내 문자열 fileContentMessage
을 Content
속성 으로 캐스팅 하기 위해 )
string fileContentMessage = File.ReadAllText(filename).Substring(411, 3);
MyObject myObj = new MyObject ()
{
Content = /// ///,
};
사용 Enum.Parse()
.
var content = (ContentEnum)Enum.Parse(typeof(ContentEnum), fileContentMessage);
추가로, Enum.Parse
이미 제공된 답변을 가져 와서 헬퍼 클래스의 사용하기 쉬운 정적 메서드에 넣을 수 있습니다.
public static T ParseEnum<T>(string value)
{
return (T)Enum.Parse(typeof(T), value, ignoreCase: true);
}
다음과 같이 사용하십시오.
{
Content = ParseEnum<ContentEnum>(fileContentMessage);
};
구문 분석 할 (다른) 열거 형이 많은 경우 특히 유용합니다.
.NET 4.0+에는 일반 Enum.TryParse가 있습니다.
ContentEnum content;
Enum.TryParse(fileContentMessage, out content);
다음과 같은 것을 사용해보십시오.
하나 이상의 열거 상수의 이름 또는 숫자 값의 문자열 표현을 해당하는 열거 개체로 변환합니다. 매개 변수는 작업이 대소 문자를 구분하는지 여부를 지정합니다. 반환 값은 변환이 성공했는지 여부를 나타냅니다.
또는
하나 이상의 열거 상수의 이름 또는 숫자 값의 문자열 표현을 해당하는 열거 개체로 변환합니다.
참고 URL : https://stackoverflow.com/questions/13970257/casting-string-to-enum
반응형
'programing' 카테고리의 다른 글
경로에서 파일 이름 가져 오기 (0) | 2020.10.25 |
---|---|
jQuery에서 getJSON에 대해 캐시를 false로 설정하는 방법은 무엇입니까? (0) | 2020.10.25 |
Angular.js 및 Bootstrap 양식 유효성 검사 스타일 조정 (0) | 2020.10.25 |
Gson으로 JSON 배열을 구문 분석하는 방법 (0) | 2020.10.25 |
postgres를 사용하여 string_agg에서와 같이 array_agg에서 null 값을 제외하는 방법은 무엇입니까? (0) | 2020.10.25 |