将List转换为IEnumerable
这里有棘手的问题。 我正在尝试将列表的项目转换为IEnumerable
。
清单
dynamicTextInDatabase
只返回我的数据库中使用的所有枚举。 目前只返回1和2.数据类simple包含一个int值。
dynamicTextEnumsInDatabase
与实际存储我的枚举的类中的列表相同。
dynamicTextEnumsAll
是我的应用程序中可用的所有枚举的列表。 目前:1,2和3。
dynamicTextEnumsAvaiable
是所有未使用的枚举的列表。 它组合了所有枚举,然后删除数据库列表中的那些。
我需要通过dynamicTextEnumsAvaiable
将dynamicTextEnumsAvaiable
传递给我的View,以显示在下拉列表中。 但是,它必须是IEnumerable
而不是List
。
码
List dynamicTextInDatabase = new List(); List dynamicTextEnumsInDatabase = new List(); List dynamicTextEnumsAll = new List(); IEnumerable list; using (var proxy = new Proxy()) { dynamicTextInDatabase = proxy.Channel.DynamicTextGetActiveEnums(Helper.GetCallingUser()); } foreach (DynamicTextEnumData item in dynamicTextInDatabase) { DynamicTextEnum dynamicTextEnum = (DynamicTextEnum)item.DynamicTextEnum; dynamicTextEnumsInDatabase.Add(dynamicTextEnum); } foreach (DynamicTextEnum item in Enum.GetValues(typeof(DynamicTextEnum))) { dynamicTextEnumsAll.Add(item); } List dynamicTextEnumsAvaiable = dynamicTextEnumsAll.Except(dynamicTextEnumsInDatabase).ToList(); if (dynamicTextEnumsAvaiable.Count == 0) { TempData["Error"] = "To update the text of a message or warning, please select it from the grid below."; return RedirectToAction("Index"); } ViewBag.AvaiableEnums = dynamicTextEnumsAvaiable; return View();
也许试试这个? ( 未经测试 )
ViewBag.AvaiableEnums = dynamicTextEnumsAvaiable.Select(x => new SelectListItem() { Text = x.ToString() });
您可以执行以下操作
ViewBag.AvaiableEnums = new SelectList(dynamicTextEnumsAvaiable)
请参阅http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist(v=vs.118).aspx
您可以使用Linq语句进行转换
IEnumerable myCollection = dynamicTextEnumsAvaiable .Select(i => new SelectListItem() { Text = i.ToString(), Value = i });
你有没有尝试过
IEnumerable myCollection = dynamicTextEnumsAvaiable.AsEnumerable()
只需使用.AsEnumerable()方法。
例:
IEnumerable myCollection = dynamicTextEnumsAvaiable.AsEnumerable()
点击这里: https : //msdn.microsoft.com/en-us/library/system.data.datatableextensions.asenumerable(v=vs.110).aspx
- MVC代码优先:自己的模型和SimpleMembership用户之间的一对多关系
- 将现有程序集添加到mvc 6项目
- 使用iTextSharp创建PDF时输入页码
- MVC .NET在强类型视图中从模型集合创建下拉列表
- 如何使用InvariantCulture仅渲染某些特定的模型字段,而其余的则继续使用用户文化?
- MVC:Dictionary需要一个类型为’System.Collections.Generic.IEnumerable`1的模型项
- 如何在Visual Studio社区2013中创建ASP.NET MVC 5 Web应用程序?
- 即使路径中有百分比编码的部分,我怎样才能可靠地获得实际的URL?
- MVC3按属性名称的本地化显示名称属性