C# 无法隐式转换类型';System.Collections.Generic.List<&燃气轮机';方法
我有一个类C# 无法隐式转换类型';System.Collections.Generic.List<&燃气轮机';方法,c#,wcf,C#,Wcf,我有一个类GetSearchFilters\u Results,它有两个列表: [DataContract] public class GetSearchFilters_Results { public List<ElementList> ElementList{ get; set; } public List<Managers> ManagerList { get; set; } } 我的问题是: 如何将
GetSearchFilters\u Results
,它有两个列表:
[DataContract]
public class GetSearchFilters_Results
{
public List<ElementList> ElementList{ get; set; }
public List<Managers> ManagerList { get; set; }
}
我的问题是:
System.Collection.Generic.List
到System.Namespace.GetSearchFilterResult()
方法
如何修复此错误您的问题是返回的是
列表
,而不是GetSearchFilter\u结果
如果要返回函数标题所述的GetSearchFilter\u Results
对象,可以将最后一行更改为:
return GSF;
编辑和旁注:
您询问如何将两个列表添加到一起。假设列表是同一个对象,您可以像这样使用AddRange()
函数:
List<string> stringListA = new List<string>();
List<string> stringListB = new List<string>();
stringListA.AddRange(stringListB); // stringListA now holds the elements from both A and B.
public List<MyType> QueryThis(ViewModel vm)
{
using (var db = new MyEntities()){
var parms = GetParms(vm);
var query = Resources.QueryStrings.MyQuery;
var stuff = db.Database.SqlQuery<MyType>(query, parms);
return stuff.ToList();
}
而不是执行相同操作的多个catch语句。您需要该函数
要返回的GetSearchFilters
GetSearchFilters_Results
但你真正回报的是
GSF.ManagerList
哪种类型的
List<Managers> ManagerList
列表管理器列表
那是你的错误。无论如何,对于问题的第1部分,您可以创建一个包含两个数据成员的类,每个数据成员都是一个列表,然后在构造函数或单独的函数中,为列表分别传递两个参数:
public Class TwoListsClass
{
List <type1> list1;
List <type2> list2;
public TwoListsClass (List <type1> list1, List <type2> list2)
{
this.list1 = list1;
this.list2 = list2;
}
}
公共类TwoListsClass
{
清单1;
清单2;
public TwoListsClass(列表1、列表2)
{
this.list1=list1;
this.list2=list2;
}
}
然后,当您完成对这两个列表的求值时,您可以调用构造函数或您编写的函数。您为此发布了大量代码。也许你可以试着把你的逻辑抽象出来一点,这样它更清晰,更容易阅读 您的问题是试图将
列表
放入GetSearchFilters\u结果的返回中。尽管ManagerList的列表是GetSearchFilters_结果的属性,但它们不能在错误状态下“隐式转换”
您可能希望执行以下操作:
[DataContract]
public class GetSearchFilters_Results
{
public List<ElementList> ElementList{ get; set; }
public List<Managers> ManagerList { get; set; }
public GetSearchFilters_Results
{
ElementList = new List<ElementList>();
ManagerList = new List<ManagerList>();
}
public GetSearchFilters_Results Execute()
{
this.ELementList = this.GetElementList();
this.ManagerList = this.GetManagerList();
return this;
}
public List<ElementList> GetElementList()
{
List<ElementList> list = new List<ElementList>();
// Get list information from db
return list;
}
public List<ManagerList> GetManagerList()
{
List<ManagerList> list = new List<ManagerList>();
// Get list information from db
return list;
}
}
[DataContract]
公共类GetSearchFilters\u结果
{
公共列表元素列表{get;set;}
公共列表管理器列表{get;set;}
公共GetSearchFilters\u结果
{
ElementList=新列表();
ManagerList=新列表();
}
公共GetSearchFilters_结果执行()
{
this.ELementList=this.GetElementList();
this.ManagerList=this.GetManagerList();
归还这个;
}
公共列表GetElementList()
{
列表=新列表();
//从数据库获取列表信息
退货清单;
}
公共列表GetManagerList()
{
列表=新列表();
//从数据库获取列表信息
退货清单;
}
}
哇,这是一种更古老的艰难做事方式。。。。考虑一下这个问题:你已经有两个模型了。
public List<ElementList> ElementList{ get; set; }
public List<Managers> ManagerList { get; set; }
@用户3442289,你解决过这个问题吗?哦,你有没有解决过这个问题?
[DataContract]
public class GetSearchFilters_Results
{
public List<ElementList> ElementList{ get; set; }
public List<Managers> ManagerList { get; set; }
public GetSearchFilters_Results
{
ElementList = new List<ElementList>();
ManagerList = new List<ManagerList>();
}
public GetSearchFilters_Results Execute()
{
this.ELementList = this.GetElementList();
this.ManagerList = this.GetManagerList();
return this;
}
public List<ElementList> GetElementList()
{
List<ElementList> list = new List<ElementList>();
// Get list information from db
return list;
}
public List<ManagerList> GetManagerList()
{
List<ManagerList> list = new List<ManagerList>();
// Get list information from db
return list;
}
}
public List<ElementList> ElementList{ get; set; }
public List<Managers> ManagerList { get; set; }
public List<MyType> QueryThis(ViewModel vm)
{
using (var db = new MyEntities()){
var parms = GetParms(vm);
var query = Resources.QueryStrings.MyQuery;
var stuff = db.Database.SqlQuery<MyType>(query, parms);
return stuff.ToList();
}
var filtered = MyTypeList.Where(p=>p.ManagerName == "SomeValue");
var filtered = MyTypeList.Where(p=>p.ElementType == "Somevalue");