我已经筛选了一个List<Application>
使用Linq来连接该列表中的两个字段并返回一个结果,现在需要将该列表返回给调用方法。如何将IEnumerable <AnonymousType>转换为列表<T>?
从LINQ的滤波的结果是IEnumerable<AnonymousType>
型的,所以我不能返回原样我的方法返回类型为List<Application>
。
我也尝试起先是使用ToList方法将IEnumerable的转换,但抛出一个编译器错误:
IEnumerable does not contain a definition for ToList()
问:
我如何转换或投一个IEnumerable到一个列表 ?
代码:
该分配进行的列表来连接两个字段并恢复它作为一个清单:
var filteredAppList = applicationList.Select(c => new { c.RID, RID_APP_FIELD = c.RID + " " + c.BusinessFriendlyName });
而下面是我尝试返回了IEnumerable作为清单:
return filteredAppList.ToList<Application>();
你为什么想要转换回应用程序类? –
您的所有对象都不是* Application对象。它们是匿名类型的实例。做你想做的事本质上就是做'.Select(x => new Application {RID = x.RID,...})'等 - 手动或自动化;你为什么要切换到一个匿名类型,如果你想'Application'实例? –
'RID_APP_FIELD'是'Application'中的一个属性吗?如果不是,则必须使其成为一个或以这种方式覆盖'ToString':'返回RID +“”+ BusinessFriendlyName'。然后你不需要创建新的实例,但是你可以返回'applicationList.Where(conditions).ToList()' –