我有一个枚举,我想将其映射到给定类型的列表。
public enum ExampleEnum
{
A = 1,
B = 2,
C = 4,
D = 8,
E = 16,
F = 32,
G = 64,
}
在这个示例枚举中,然后我想将其放入ListItem
看起来像这样的类型的列表中:
public class ListItem
{
public int Value { get; set; }
public string Text { get; set; }
}
List<ListItem> ExampleList = new List<ListItem>() {
new ListItem(){Text = "A", Value = 1},
new ListItem(){Text = "B", Value = 2},
new ListItem(){Text = "C", Value = 4},
new ListItem(){Text = "D", Value = 8},
new ListItem(){Text = "E", Value = 16},
new ListItem(){Text = "F", Value = 32},
new ListItem(){Text = "G", Value = 64},
};
但是,当前我只是在创建一个实质上包含与Enum相同的信息的列表,我想从Enum创建该列表
也许有更好的方法,但这似乎可行:
var list = Enum.GetValues(typeof(ExampleEnum)).Cast<ExampleEnum>().Select(
x => new ListItem { Text = x.ToString(), Value = (int)x }).ToList();
因此,这将使用从枚举中获取所有值Enum.GetValues
。由于它返回类型Array
,因此我习惯于Cast<ExampleEnum>
将它们放入IEnumerable<ExampleEnum>
。然后我将Select
每个枚举值都赋给一个ListItem
类型。Text
属性是通过创建ToString
,Value
是由它铸造于创造财产int
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句