加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何将新项目插入到IEnumerable中

发布时间:2020-12-15 18:11:43 所属栏目:百科 来源:网络整理
导读:我从枚举创建一个下拉列表. public enum Level{ Beginner = 1,Intermediate = 2,Expert = 3} 这是我的扩展名 public static SelectList ToSelectListTEnum(this TEnum enumObj) { IEnumerableTEnum values = Enum.GetValues(typeof(TEnum)).CastTEnum(); var
我从枚举创建一个下拉列表.
public enum Level
{
    Beginner = 1,Intermediate = 2,Expert = 3
}

这是我的扩展名

public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
    {

        IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();

        var result = from TEnum e in values
                     select new { ID = (int)Enum.Parse(typeof(TEnum),e.ToString()),Name = e.ToString() };

        var tempValue = new { ID = 0,Name = "-- Select --" };


        return new SelectList(result,"Id","Name",enumObj);
    }

我的问题是将antoher项插入到IEnumerable中.我不知道该怎么做.有人可以修改我的代码,将“–select–”插入到顶部.

解决方法

您不能修改IEnumerable< T>对象,它只提供一个枚举元素的接口.但是您可以使用.ToList()来转换IEnumerable< T>到列表< T>.

我不知道这是你想要的:

public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{

    IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();

    var result = from TEnum e in values
                 select new { ID = (int)Enum.Parse(typeof(TEnum),Name = e.ToString() };

    var tempValue = new { ID = 0,Name = "-- Select --" };

    var list = result.ToList(); // Create mutable list

    list.Insert(0,tempValue); // Add at beginning of list

    return new SelectList(list,enumObj); 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读