【问题标题】:Convert Enums to List of given type将枚举转换为给定类型的列表
【发布时间】:2020-08-22 03:19:42
【问题描述】:

我有一个枚举,我想将它映射到给定类型的列表。

 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 创建列表

【问题讨论】:

    标签: c# list enums


    【解决方案1】:

    可能有更好的方法,但这似乎可行:

    var list = Enum.GetValues(typeof(ExampleEnum)).Cast<ExampleEnum>().Select(
        x => new ListItem { Text = x.ToString(), Value = (int)x }).ToList();
    

    所以这将使用Enum.GetValues 从枚举中获取所有值。由于它返回类型Array,我使用Cast&lt;ExampleEnum&gt; 将它们放入IEnumerable&lt;ExampleEnum&gt;。然后我将Select 每个枚举值设置为ListItem 类型。 Text 属性是使用ToString 创建的,Value 属性是通过将其转换为int 创建的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 2010-12-21
      • 2012-09-30
      • 1970-01-01
      • 2010-10-11
      相关资源
      最近更新 更多