MVC C# 中的 DTO 出现问题可能存在转换问题



每次我尝试编写排除用户已经拥有的服务的方法时,我都会收到此错误。 所以我有两个列表,List1 是所有服务,List2 是用户拥有的所有服务的列表。 所以我正在两个列表中进行联盟排除,但每次我都尝试

无法将类型"System.Collections.Generic.List"隐式转换为"System.Collections.Generic.List"C:.。\控制器\服务控制器.cs

private List<ServiceDTO> getList(ServDTO.ServDTO[] services, IEnumerable<string> servObtained)
{
    var allServices = servicesClient.GetallServices();
    var allServicesCode = (from s in allServices select s.serviceCode).ToList();
    IEnumerable<String> list1 = allServicesCode;
    IEnumerable<String> list2 = servObtained;
    var listFinal = list1.Union(list2);
    List<ServiceDTO> list = listFinal.ToList();
    return (list);
}

谁能阐明为什么我会遇到这个问题?

您返回了错误的类型,请更改代码以返回正确的类型。编译器不知道如何将string转换为ServiceDTO您必须自己做。

更改以下两行:

List<ServiceDTO> list = listFinal.ToList();
return (list);

跟:

 return listFinal.Select(x=>new ServiceDTO(){serviceCode = x})ToList();

若要返回List<ServiceDTO>返回,当前要返回List<string>,而方法返回类型为 List<ServiceDTO>

最新更新