C# 将枚举转换为给定类型的列表
我有一个枚举,我想把它映射到一个给定类型的列表C# 将枚举转换为给定类型的列表,c#,list,enums,C#,List,Enums,我有一个枚举,我想把它映射到一个给定类型的列表 公共枚举示例枚举 { A=1, B=2, C=4, D=8, E=16, F=32, G=64, } 对于这个示例Enum,我想将其放入类型为ListItem的列表中,如下所示: 公共类列表项 { 公共int值{get;set;} 公共字符串文本{get;set;} } List ExampleList=新列表(){ new ListItem(){Text=“A”,Value=1}, new ListItem(){Text=“B”,Value=2
公共枚举示例枚举
{
A=1,
B=2,
C=4,
D=8,
E=16,
F=32,
G=64,
}
对于这个示例Enum,我想将其放入类型为ListItem
的列表中,如下所示:
公共类列表项
{
公共int值{get;set;}
公共字符串文本{get;set;}
}
List ExampleList=新列表(){
new ListItem(){Text=“A”,Value=1},
new ListItem(){Text=“B”,Value=2},
new ListItem(){Text=“C”,Value=4},
new ListItem(){Text=“D”,Value=8},
新建ListItem(){Text=“E”,Value=16},
new ListItem(){Text=“F”,Value=32},
新建ListItem(){Text=“G”,Value=64},
};
但是,目前我正在创建一个包含与枚举基本相同信息的列表,我想从枚举创建列表可能有更好的方法,但这似乎可行:
var list = Enum.GetValues(typeof(ExampleEnum)).Cast<ExampleEnum>().Select(
x => new ListItem { Text = x.ToString(), Value = (int)x }).ToList();
var list=Enum.GetValues(typeof(examplenum)).Cast().Select(
x=>newlistItem{Text=x.ToString(),Value=(int)x}).ToList();
因此,这将使用
enum.GetValues
从枚举中获取所有值。由于它返回类型Array
,我使用Cast
将它们放入IEnumerable
。然后我选择每个枚举值到列表项
类型Text
属性是通过使用ToString
创建的,Value
属性是通过将其强制转换为int
创建的,可能有更好的方法,但这似乎可行:
var list = Enum.GetValues(typeof(ExampleEnum)).Cast<ExampleEnum>().Select(
x => new ListItem { Text = x.ToString(), Value = (int)x }).ToList();
var list=Enum.GetValues(typeof(examplenum)).Cast().Select(
x=>newlistItem{Text=x.ToString(),Value=(int)x}).ToList();
因此,这将使用enum.GetValues
从枚举中获取所有值。由于它返回类型Array
,我使用Cast
将它们放入IEnumerable
。然后我选择每个枚举值到列表项
类型Text
属性是通过使用ToString
创建的,Value
属性是通过将其强制转换为int
创建的