如何将List <AnonymousType>转换为List <string>

Cic*_*ami 6 c# casting anonymous-types .net-4.0 linq-to-sql

我想转换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"
   });
}
Run Code Online (Sandbox Code Playgroud)

这段代码创建了一个List<AnonymousType>.然后我想将此List分配给变量List<string>,如下面的代码所示:

DashboardViewModel lYTMDashboard = new DashboardViewModel()
{
      KPIList = (List<string>) lkpiTodisplay,
      //other assignments
};
Run Code Online (Sandbox Code Playgroud)

铸造不起作用.我该如何转换变量?修改第一个代码片段的其他解决方案是受欢迎的,只要KPIList变量保持为List<string>.

谢谢

弗朗切斯科

Bal*_*a R 15

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

 lkpiTodisplay.Add("Business Target");
Run Code Online (Sandbox Code Playgroud)

要么

你可以做

lkpiTodisplay.Select( x => x.KPI_Name).ToList();
Run Code Online (Sandbox Code Playgroud)

要得到 List<String>


STO*_*STO 6

您不能将List <AnonymousType>分配给List <String>,这些类型不兼容.
使用lkpiToDiplay.Select(i => i.ToString()).ToList()