Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将枚举转换为给定类型的列表_C#_List_Enums - Fatal编程技术网

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
创建的