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; }
    }
我的问题是:

  • 如何将两个单独的列表添加到单个对象中

  • 如果将一个列表添加到GetSearchFilter对象中,则会出现一个错误,该列表显示:

    无法将类型隐式转换为
    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");