![](/img/trans.png)
[英]How can I cast List<BaseClass> to List<ChildClass> in C#?
[英]Using LINQ, how can I cast a List<object> to a List<SelectListItem> in C#?
我正在尝试呈现用户的下拉列表,并且很难将用户对象列表投射到列表中。 我尝试过的各种尝试包括使用.ToList()和.Cast,但这些尝试均失败,如下所述。
这是我目前的方法。
public static List<SelectListItem> getStandardDropdownList(EnumStatusIsActive.StatusIsActive statusIsActive, UserListValueType userListValueType)
{
List<SelectListItemUser> userList = Shared.getDataForStandardDropdownListItemUser(UserListType.ExternalUser, statusIsActive, null);
List<SelectListItem> standardList = userList.Select(u => new SelectListItem
{
Text = u.UserName,
Value = u.UserToken.ToString()
});
}
失败的地方是userList.Select()。 上面的错误信息是:
无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.Generic.List'。 存在显式转换(您是否缺少演员表?)
所以我尝试了.ToList(),如下所示。 但这导致了同样的错误。
List<SelectListItem> standardList = userList.ToList().Select(u => new SelectListItem ...
我尝试使用Cast,就像这样...
IEnumerable<SelectListItemUser> userCollection = Shared.getDataForStandardDropdownListItemUser(UserListType.ExternalUser, statusIsActive, null);
List<SelectListItem> standardList = userCollection.Cast<SelectListItemUser>().Select(u => new SelectListItem ...
仍然没有爱,并且出现相同的错误消息。 现在,我可以通过for / each循环遍历列表,以创建必要的List<SelectListItem>
,但是我更喜欢通过Linq进行此操作。 我需要进行哪些更改才能使其正常工作? 谢谢!
ToList()
调用在末尾进行:
List<SelectListItem> standardList = userList.Select(u => new SelectListItem
{
Text = u.UserName,
Value = u.UserToken.ToString()
}).ToList();
你近了 选择是正确的方法,您只需要在选择之前做一个ToList()之后即可。 :]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.