如何解决将枚举转换为给定类型的列表
我有一个枚举,我想将其映射到给定类型的列表。
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
来创建的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。