每当我尝试编写一个排除用户已经拥有的服务的方法时,我就会收到此错误。所以我有两个列表,List1是所有服务,List2是用户拥有的所有服务的列表。所以我在两个名单上做了一个联盟排除,但是我试着去尝试#/ p>
无法将类型'System.Collections.Generic.List'隐式转换为'System.Collections.Generic.List'C:.. \ Controllers \ ServicesController.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);
}
任何人都可以解释为什么我会遇到这个问题?
答案 0 :(得分:1)
您返回了错误的类型,将代码更改为返回正确的类型。编译器不知道如何将string
转换为ServiceDTO
您必须自己完成。
更改这两行:
List<ServiceDTO> list = listFinal.ToList();
return (list);
使用:
return listFinal.Select(x=>new ServiceDTO(){serviceCode = x})ToList();
返回List<ServiceDTO>
,目前您返回List<string>
,而您的方法返回类型为List<ServiceDTO>