나는 열거 값에 대한 StringValue
속성을 가진, 그래서 각각의 값에 대한 설명을 첨부 할 수 있습니다 :enum 값 특성의 IEnumerable <string>을 얻는 방법?
public class StringValueAttribute : Attribute
{
public string Value { get; private set; }
public StringValueAttribute(string value)
{
Value = value;
}
}
을 그리고 내가 그것을 사용하는 방법입니다 :
enum Group
{
[StringValue("Computer Science")]
ComputerScience,
[StringValue("Software Engineering")]
SoftwareEngineering,
// ... additional values follow.
}
나는를 검색하는 방법을 StringValue
이 열거 값 주어진 :
public static string GetStringValue(Enum value)
{
Type type = value.GetType();
FieldInfo fieldInfo = type.GetField(type.ToString());
StringValueAttribute[] attributes = fieldInfo.GetCustomAttributes(typeof(StringValueAttribute), false) as StringValueAttribute[];
string stringValue = null;
if (attributes.Length > 0)
{
stringValue = attributes[0].Value;
}
return stringValue;
}
내가 열거 얻는 다른 방법을 갖고 싶어 (열거 자체를하지 값)을 nd는 GetStringValue
메소드를 사용하여 IEnumerable
을 검색합니다. 나는 그것을 성취하는 방법을 잘 모르겠습니다. 이 방법은 어떻게 생겼습니까?
편집 :이 질문은 How to get C# Enum description from value?의 중복이 아니다. 열거 형 속성 값을 얻는 방법을 알고 있습니다. 실제로 그 일을 정확하게 수행하는 방법이 있습니다. 내 질문에 열거 형의 모든 특성을 열거하는 방법입니다.
당신은 당신이'GetStringValues ()'일반적인 방법을 원하는거야? –
dbc
사용자 정의 속성 대신 기존의'DescriptionAttribute'를 사용할 수 있습니다. enum.GetValues (typeof (EnumType)) 캐스트() .Select (/ * 메서드 호출 * /)' –
@dbc - 그런 식으로. 그러나 [여기] (https://stackoverflow.com/a/27101267/1925272) 그런 방법을 일반적인 것으로 만들지 않는 것이 좋습니다. – Sipo