![](/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.