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