(精华)2020年6月26日 C#类库 枚举类型转为选项列表帮助类

using System;
using System.Collections.Generic;
using System.Linq;

namespace Core.Util
{
    public static class EnumHelper
    {
        /// 
        /// 将枚举类型转为选项列表
        /// 注:value为值,text为显示内容
        /// 
        /// 枚举类型
        /// 
        public static List<SelectOption> ToOptionList(Type enumType)
        {
            var values = Enum.GetValues(enumType);
            List<SelectOption> list = new List<SelectOption>();
            foreach (var aValue in values)
            {
                list.Add(new SelectOption
                {
                    value = ((int)aValue).ToString(),
                    text = aValue.ToString()
                });
            }

            return list;
        }

        /// 
        /// 多选枚举转为对应文本,逗号隔开
        /// 
        /// 多个值
        /// 枚举类型
        /// 
        public static string ToMultipleText(List<int> values, Type enumType)
        {
            if (values == null)
                return string.Empty;

            List<string> textList = new List<string>();

            var allValues = Enum.GetValues(enumType);
            foreach (var aValue in allValues)
            {
                if (values.Contains((int)aValue))
                    textList.Add(aValue.ToString());
            }

            return string.Join(",", textList);
        }

        /// 
        /// 多选枚举转为对应文本,逗号隔开
        /// 
        /// 多个值逗号隔开
        /// 枚举类型
        /// 
        public static string ToMultipleText(string values, Type enumType)
        {
            return ToMultipleText(values?.Split(',')?.Select(x => x.ToInt())?.ToList(), enumType);
        }
    }
    public class SelectOption
    {
        public string value { get; set; }
        public string text { get; set; }
    }
}

你可能感兴趣的:(#,C#类库/扩展方法)