C# 中将枚举转为为列表项
1. 将一个枚举的成员转换为一个List
using System; using System.Linq; using System.Collections.Generic; public class Example { public enum Days { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 } public static void Main() { List<Days> days = Enum.GetValues(typeof(Days)) .Cast<Days>() .ToList(); Console.WriteLine(String.Join(Environment.NewLine, days)); } } /* Output: Monday Tuesday Wednesday Thursday Friday Saturday Sunday */
2. 将一个枚举的成员转换为一个数组 Array[ ]
using System; public class Example { public enum Days { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 } public static void Main() { Days[] days = (Days[])Enum.GetValues(typeof(Days)); Console.WriteLine(String.Join(Environment.NewLine, days)); } } /* Output: Monday Tuesday Wednesday Thursday Friday Saturday Sunday */
3. 将枚举项项带数字值转换为一个List.
using System; using System.Linq; using System.Collections.Generic; public class Example { public enum Days { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 } public static void Main() { var days = Enum.GetValues(typeof(Days)) .Cast<Days>() .Select(d => (d, (int)d)) .ToList(); Console.WriteLine(String.Join(Environment.NewLine, days)); } } /* Output: (Monday, 1) (Tuesday, 2) (Wednesday, 3) (Thursday, 4) (Friday, 5) (Saturday, 6) (Sunday, 7) */
4. 随机一个枚举值,一般用来做测试
public T RandomEnum<T>() { T[] values = (T[]) Enum.GetValues(typeof(T)); return values[new Random().Next(0,values.Length)]; }