📜  c# 将枚举转换为列表 - C# (1)

📅  最后修改于: 2023-12-03 15:13:51.500000             🧑  作者: Mango

C# 将枚举转换为列表

在 C# 中,枚举类型是一种很常见的数据类型。有时我们需要将枚举类型转换成列表,以便在 UI 界面中显示。本文将介绍如何使用 C# 将枚举类型转换成列表。

步骤
  1. 首先定义一个枚举类型,比如:

    enum Color
    {
        Red,
        Green,
        Blue
    }
    
  2. 定义一个静态方法,将枚举类型转换成列表。方法代码如下:

    static List<string> GetEnumList<T>()
    {
        List<string> enumList = new List<string>();
        Type enumType = typeof(T);
        if (enumType.IsEnum)
        {
            var enumValues = Enum.GetValues(enumType);
            foreach (var value in enumValues)
            {
                enumList.Add(value.ToString());
            }
        }
        return enumList;
    }
    

    上面的代码中,我们首先创建了一个空的字符串列表 enumList。之后获取枚举类型 T 的信息,判断它是否为枚举类型。如果是,就获取该枚举类型的所有值,并将它们转换成字符串。最后将这些字符串添加到 enumList 中。

  3. 调用方法,将枚举类型转换成列表。方法代码如下:

    List<string> enumList = GetEnumList<Color>();
    

    这里我们将枚举类型 Color 作为泛型类型参数传递给 GetEnumList 方法,然后将返回的字符串列表保存在 enumList 中。

  4. 现在我们可以使用 enumList 列表了,比如在控制台输出。控制台输出代码如下:

    foreach (string item in enumList)
    {
        Console.WriteLine(item);
    }
    

    这里我们使用 foreach 循环遍历 enumList 列表,并输出其中的每个字符串元素。

示例代码

最终的示例程序代码如下:

using System;
using System.Collections.Generic;

namespace EnumToListDemo
{
    enum Color
    {
        Red,
        Green,
        Blue
    }

    class Program
    {
        static List<string> GetEnumList<T>()
        {
            List<string> enumList = new List<string>();
            Type enumType = typeof(T);
            if (enumType.IsEnum)
            {
                var enumValues = Enum.GetValues(enumType);
                foreach (var value in enumValues)
                {
                    enumList.Add(value.ToString());
                }
            }
            return enumList;
        }

        static void Main(string[] args)
        {
            List<string> enumList = GetEnumList<Color>();
            foreach (string item in enumList)
            {
                Console.WriteLine(item);
            }
        }
    }
}
总结

本文介绍了如何使用 C# 将枚举类型转换成列表。我们首先定义了一个枚举类型和一个静态方法,然后将枚举类型作为泛型类型参数传递给该方法,并获取返回的字符串列表。最后我们演示了如何遍历该列表,并输出其中的每个字符串元素。