2014-11-28 4 views
-4

Я видел все решение, предоставленное в stackoverflow, но не получившее решения. Ниже мой код.Невозможно неявно преобразовать тип 'System.Collections.Generic.List <AnonymousType # 1>' в 'System.Collections.Generic.List <>'

private static List<CombinedData> CombineReport(List<TimesheetUserPaycodeReport> timesheetUserPayCodeData, List<TimesheetReportData> reportData) 
     { 
      List<CombinedData> combinedReportData = new List<CombinedData>(); 
      return combinedReportData = (from ts in timesheetUserPayCodeData 
      join rd in reportData on new {ts.LoginName,ts.EntryDateString } equals new {rd.LoginName,rd.EntryDateString } 
      select new { rd.EmployeeId,rd.LoginName, rd.LastName, rd.FirstName,rd.StartDateString, 
       rd.EndDateString,rd.UserId,rd.EntryDateString,rd.ApprovalStatus,ts.PayCodeHours, 
       ts.PayCodeCode,rd.ProjectCode,rd.OTRTicket,rd.ActivityCode,rd.ExportOn,rd.ApprovedOnString,rd.SubmittedOnString,rd.TimesheetId}).ToList(); 

Я получаю ниже ошибки:

Cannot implicitly convert type 'System.Collections.Generic.List<AnonymousType#1>' to 'System.Collections.Generic.List<TimeSheetExport.CombinedData> 
+2

Ошибка довольно ясно. Вы пытаетесь вернуть список анонимного типа из метода, который должен возвращать 'List ' –

+0

имен TimeSheetExport { [DelimitedRecord ("")] класса CombinedData { [FieldQuoted] общественной строка EmployeeID ; [FieldQuoted] public string LoginName; – Anonymous

+0

Пожалуйста, не пытайтесь добавить код в комментарии - если вы хотите показать больше кода, пожалуйста, * отредактируйте * свой вопрос и добавьте его. Если вы выделите блок кода и нажмите кнопку '{}', мы также получим красивое форматирование кода. –

ответ

0

Вы пытаетесь создать список Anonimus типа вместо списка. Попробуйте

... select new CombinedData(rd.EmployeeId,rd.LoginName, rd.LastName, rd.FirstName,rd.StartDateString, 
      rd.EndDateString,rd.UserId,rd.EntryDateString,rd.ApprovalStatus,ts.PayCodeHours, 
      ts.PayCodeCode,rd.ProjectCode,rd.OTRTicket,rd.ActivityCode,rd.ExportOn,rd.ApprovedOnString,rd.SubmittedOnString,rd.TimesheetId); 
3

You're trying to return list of anonymous type from a method which needs to return List. new { } will create AnonymousType list, so you need to create your List as return type of your method.

Что я предполагаю, ваш класс CombinedData есть все поля, которые вы возвращаете, то просто изменить свой запрос, как показано ниже:

private static List<CombinedData> CombineReport(List<TimesheetUserPaycodeReport> timesheetUserPayCodeData, List<TimesheetReportData> reportData) 
     { 
      List<CombinedData> combinedReportData = new List<CombinedData>(); 
      return combinedReportData = (from ts in timesheetUserPayCodeData 
      join rd in reportData on new {ts.LoginName,ts.EntryDateString } equals new {rd.LoginName,rd.EntryDateString } 
      select new CombinedData /// Create CombinedData object here, not anonymous type 
      { 
       EmployeeId = rd.EmployeeId, 
       LoginName = rd.LoginName, 
       LastName = rd.LastName, 
      ------ so on for remaining fields 
      }).ToList(); 
Смежные вопросы

 Смежные вопросы