【发布时间】:2011-04-19 17:52:10
【问题描述】:
我想将List<AnonymousType> 转换为List<string>。我有以下代码:
var lkpiTodisplay = _MGMTDashboardDB.KPIs.Where(m => m.Compulsory == true && m.Active == true)
.Select(m => new
{
KPI_Name = m.Absolute == true ? m.KPI_Name : (m.KPI_Name + "%")
}).ToList();
for(int i=1; i<= BusinessTargetCol; i++)
{
lkpiTodisplay.Add(new
{
KPI_Name = "Business Target"
});
}
此代码创建一个List<AnonymousType>。然后我想把这个List赋值给一个变量List<string>,如下代码所示:
DashboardViewModel lYTMDashboard = new DashboardViewModel()
{
KPIList = (List<string>) lkpiTodisplay,
//other assignments
};
铸造不起作用。如何转换变量?欢迎使用其他修改第一个代码 sn -p 的解决方案,只要将 KPIList 变量保留为 List<string>。
谢谢
弗朗西斯科
【问题讨论】:
-
永远不要使用
== true,这是一种浪费。 -
看起来你不需要首先创建匿名类,所以不要。
-
@minitech:有趣的论点。就性能而言是浪费?
-
很小的一个(两个 CPU 操作,可能是几纳秒),但它只会使您的代码文件更大(有时可读性会降低,因为它会出现滚动条)。
标签: c# linq-to-sql .net-4.0 casting anonymous-types