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

前端之家收集整理的这篇文章主要介绍了c# – 如何将新项目插入到IEnumerable中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从枚举创建一个下拉列表.
  1. public enum Level
  2. {
  3. Beginner = 1,Intermediate = 2,Expert = 3
  4. }

这是我的扩展名

  1. public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
  2. {
  3.  
  4. IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
  5.  
  6. var result = from TEnum e in values
  7. select new { ID = (int)Enum.Parse(typeof(TEnum),e.ToString()),Name = e.ToString() };
  8.  
  9. var tempValue = new { ID = 0,Name = "-- Select --" };
  10.  
  11.  
  12. return new SelectList(result,"Id","Name",enumObj);
  13. }

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

解决方法

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

我不知道这是你想要的:

  1. public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
  2. {
  3.  
  4. IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
  5.  
  6. var result = from TEnum e in values
  7. select new { ID = (int)Enum.Parse(typeof(TEnum),Name = e.ToString() };
  8.  
  9. var tempValue = new { ID = 0,Name = "-- Select --" };
  10.  
  11. var list = result.ToList(); // Create mutable list
  12.  
  13. list.Insert(0,tempValue); // Add at beginning of list
  14.  
  15. return new SelectList(list,enumObj);
  16. }

猜你在找的C#相关文章