从返回列表的方法实例化 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;
    }

从返回列表的方法实例化 List

您不能简单地在 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();
相关文章: