从返回列表的方法实例化 List
本文关键字:实例化 List 方法 返回 列表 | 更新日期: 2023-09-27 18:35:23
我正在尝试将列表的新实例实例实例化为从不同.dll类中的方法接收的对象。当我这样做时,我收到一个类型转换错误:
无法隐式转换类型 System.Collections.Generic.List
to System.Collections.Generic.List
以下是我实例化它的方式:
public List<EmployeeBusinessUser> GetAll()
{
EmployeeBusinessData empData = new EmployeeBusinessData();
List<Employee> employees = new List<Employee>();
List<EmployeeBusinessUser> retEmployees = new List<EmployeeBusinessUser>();
try
{
//Here is where I am trying to get the list assigned to what is
//returned from the method call
employees = empData.GetAll();
}
catch (Exception ex)
{
ErrorRoutine(ex, "EmployeeUserData", "GetAll");
}
return retEmployees;
}
感谢您的帮助。
编辑:GetAll()方法:
public List<Employee> GetAll()
{
HelpDeskDBEntities dbContext = new HelpDeskDBEntities();
List<Employee> employees = new List<Employee>();
try
{
employees = dbContext.Employees.ToList();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return employees;
}
您不能简单地在 2 个不同的命名空间中分配两个类。您需要有一种转换或转换方法来映射这两者。
错误清楚地说明了命名空间。 HelpDeskBusinessDataObject vs HelpDeskBusinessUserObject
无法隐式转换类型 System.Collections.Generic.List<HelpDeskBusinessDataObject.Employee> to System.Collections.Generic.List<HelpDeskBusinessUserObject.Employee>
EmpData 是 EmployeeBusinessData 的一个实例。 员工是员工列表。 你不能简单地得到所有,除非方法 GetAll() 返回
List<Employee>.
只需从 GetAll() 检查您的返回类型,并确保它返回员工列表。
此错误仅表示您无法返回 HelpDeskBusinessDataObject 类型的列表,其中需要 HelpDeskBusinessUserObject。请发布对 GetAll() 方法的调用。
你可以使用 Linq 特别是 Select 将HelpDeskBusinessDataObject.Employee
转换为HelpDeskBusinessUserObject.Employee
。
例如这样的:
empData.GetAll().Select(e => createBusinessUserEmployee(e)).ToList();