如何使用LINQ强制转换list对象?select listtitem>在c#
本文关键字:select listtitem 对象 list LINQ 何使用 转换 | 更新日期: 2023-09-27 18:14:48
我试图呈现用户的下拉列表,并且很难将用户对象列表转换为列表。我尝试过的各种尝试包括使用。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();
你差一点。Select是正确的方法,您只需要在Select之后而不是之前执行ToList()。:]