[英]Convert a IEnumerable<AnonymousType#1> to List<string>
[英]How to convert an IEnumerable<AnonymousType> to a List<T>?
我使用Linq過濾了List<Application>
以連接該列表中的兩個字段並返回結果,現在需要將該列表返回給調用方法。
Linq過濾的結果為IEnumerable<AnonymousType>
類型,因此我無法返回,因為我的方法返回類型為List<Application>
。
我最初嘗試做的是使用ToList方法轉換IEnumerable,但這會引發編譯器錯誤:
IEnumerable does not contain a definition for ToList()
題:
如何將IEnumerable轉換或轉換為List?
碼:
此分配是在List上執行的,以連接兩個字段並將其作為列表返回:
var filteredAppList = applicationList.Select(c => new { c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });
下面是我嘗試將IEnumerable作為列表返回的方法:
return filteredAppList.ToList<Application>();
問題是,先前的查詢返回了一系列匿名對象,我們正在嘗試將其轉換為Application
類型。 造成問題的原因,請嘗試此。
filteredAppList.Select(x=> new Application()
{
// set properties.
})
.ToList();
如果您知道需要返回Application
對象,則應避免使用匿名類型:
var filteredAppList = applicationList.Select(c => new Application { RID = c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });
return filteredAppList.ToList();
我假設您的匿名類型與您的“ Application
類型嚴格相同,但事實並非如此。 您仍然可以在中間步驟中使用匿名類型,但是運行時幾乎無法將您的匿名類型自動轉換為Application
,因此將其投影回所需類型的實例幾乎是您唯一的選擇。
var filteredAppList = applicationList.Select(c => new { RID = c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });
return filteredAppList.Select(anon => new Application { RID = anon.RID, OtherApplicationProperty = anon.RID_APP_FIELD }).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.