首页 > 解决方案 > 我如何 Concat 2 SelectList 列表?

问题描述

我需要将 2 个 SelectLists 合并为一个,Concat() 想要一个我无法弄清楚的演员表。

SelectList sl1 = new SelectList(Cust.GetCustListOne(), "Id", "Last", 2);
SelectList sl2 = new SelectList(Cust.GetCustListTwo(), "Id", "Last", 4);
SelectList sl3 = sl2.Concat(sl1);

第 3 行的错误是 CS0266 无法将类型 IEnumerable 隐式转换为 SelectList。存在显式转换(您是否缺少演员表?)

铸造如下

SelectList sl3 = (SelectList)sl2.Concat(sl1);

失败并出现以下错误

InvalidCastException:无法将类型的对象转换<ConcatIterator>d__59-1[System.Web.Mvc.SelectListItem]为类型System.Web.Mvc.SelectList

我在这里想念什么演员?

标签: c#asp.net-mvc

解决方案


这是因为System.Linq.Enumerable.Concat返回 IEnumerable 并且正如错误所暗示的那样,它不能将其隐式转换为它没有转换的东西。

改变:

SelectList sl3 = sl2.Concat(sl1);

以下,哪个有效,因为 SelectList 构造函数接受IEnumerable

SelectList sl3 = new SelectList(sl2.Concat(sl1));

推荐阅读