我需要将2个SelectList合并为一个,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
我在这里想念什么?
答案 0 :(得分:2)
这是因为System.Linq.Enumerable.Concat返回IEnumerable,并且正如错误所暗示的那样,它无法将其隐式转换为没有转换的内容。
更改:
SelectList sl3 = sl2.Concat(sl1);
由于SelectList构造函数接受IEnumerable
SelectList sl3 = new SelectList(sl2.Concat(sl1));
答案 1 :(得分:-1)
在两个SelectList上都使用.union
List<person> persons = new List<person>();
persons.Add(new person() { id = 1, name = "Abel" });
persons.Add(new person() { id = 1, name = "Joseph" });
List<person> persons2 = new List<person>();
persons2.Add(new person() { id = 1, name = "Stacey" });
persons2.Add(new person() { id = 1, name = "John" });
SelectList s1 = new SelectList(persons);
SelectList s2 = new SelectList(persons2);
SelectList s3 = new SelectList(s1.Union(s2));