如何将List <anonymoustype>转换为List <string> </string> </anonymoustype>

时间:2011-04-19 17:52:10

标签: c# linq-to-sql .net-4.0 casting anonymous-types

我想将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
};

施法不起作用。我该如何转换变量?只要 KPIList 变量保留为List<string>,欢迎修改第一个代码段的其他解决方案。

由于

弗朗西斯

2 个答案:

答案 0 :(得分:15)

如果可以,您可以跳过匿名类,如果您不需要它,

 lkpiTodisplay.Add("Business Target");

你可以做到

lkpiTodisplay.Select( x => x.KPI_Name).ToList();

获取List<String>

答案 1 :(得分:6)

您无法指定列表&lt; AnonymousType&gt;列出&lt; String&gt;,这些类型不兼容 使用lkpiToDiplay.Select(i => i.ToString()).ToList()