如何在 C# 中将 Class 存储到列表中

How to store Class into List in C#

我知道这可能是个愚蠢的问题。但是为了正式起见,我想将这些 Class 字段存储到列表中。我尝试了多次,但仍然面临着同样的事情。我已经花了几天时间来修复这个错误但没有成功请帮助我 我想调用网络服务并绑定下拉列表。 (公司、国家、部门、位置)在 class 中。 但是在存储在列表中时我无法做到这一点。明显区域的拥挤误差(return type not matching) 错误:

(Can not implicitly convert type Almarai.GiveAway.GetInitiatorList.ALM_WKFLW_TYPE_M[] to Almarai.GiveAway.GetInitiatorList.INITIATORS_LIST[])

我明白是因为 return 输入错误,但是如何存储请指导我

我试过:

[WebMethod]
        public static List<Devision> GetAllFields()
        {
            string userID= "1000";
            GetInitiatorList.MasterDataServiceClient oClient = new GetInitiatorList.MasterDataServiceClient();
            Almarai.GiveAway.GetInitiatorList.INITIATORS_LIST[] divisionMList = oClient.GetInitiatorsList(userID); 

            List<Devision> Division = new List<Devision>();
            foreach (Almarai.GiveAway.GetInitiatorList.INITIATORS_LIST Devision in divisionMList)
            {
                Division.Add(new Devision()
                {
                    DevisionCode = Devision.DivisionCode,
                    DevisionName = Devision.DivisionName
                });
            }
            return Division;
        }

我的 class 继承 object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged

我不太确定这种类型的对象。任何人都可以将这些 class 存储到列表

中吗

Class:

[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="INITIATORS_LIST", Namespace="http://schemas.datacontract.org/2004/07/Almarai.Web.Services.DataEntities")]
    [System.SerializableAttribute()]
    public partial class INITIATORS_LIST : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M[] CompaniesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Almarai.GiveAway.GetInitiatorList.ALM_COUNTRY_M[] CountriesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Almarai.GiveAway.GetInitiatorList.ALM_DIVISION_M[] DivisionsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Almarai.GiveAway.GetInitiatorList.LOCATION[] LocationsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Almarai.GiveAway.GetInitiatorList.REGION[] RegionsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private Almarai.GiveAway.GetInitiatorList.ALM_WKFLW_TYPE_M[] WorkflowTypesField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M[] Companies {
            get {
                return this.CompaniesField;
            }
            set {
                if ((object.ReferenceEquals(this.CompaniesField, value) != true)) {
                    this.CompaniesField = value;
                    this.RaisePropertyChanged("Companies");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Almarai.GiveAway.GetInitiatorList.ALM_COUNTRY_M[] Countries {
            get {
                return this.CountriesField;
            }
            set {
                if ((object.ReferenceEquals(this.CountriesField, value) != true)) {
                    this.CountriesField = value;
                    this.RaisePropertyChanged("Countries");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Almarai.GiveAway.GetInitiatorList.ALM_DIVISION_M[] Divisions {
            get {
                return this.DivisionsField;
            }
            set {
                if ((object.ReferenceEquals(this.DivisionsField, value) != true)) {
                    this.DivisionsField = value;
                    this.RaisePropertyChanged("Divisions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Almarai.GiveAway.GetInitiatorList.LOCATION[] Locations {
            get {
                return this.LocationsField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationsField, value) != true)) {
                    this.LocationsField = value;
                    this.RaisePropertyChanged("Locations");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Almarai.GiveAway.GetInitiatorList.REGION[] Regions {
            get {
                return this.RegionsField;
            }
            set {
                if ((object.ReferenceEquals(this.RegionsField, value) != true)) {
                    this.RegionsField = value;
                    this.RaisePropertyChanged("Regions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Almarai.GiveAway.GetInitiatorList.ALM_WKFLW_TYPE_M[] WorkflowTypes {
            get {
                return this.WorkflowTypesField;
            }
            set {
                if ((object.ReferenceEquals(this.WorkflowTypesField, value) != true)) {
                    this.WorkflowTypesField = value;
                    this.RaisePropertyChanged("WorkflowTypes");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }

INITIATOR_LIST Class:

[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="INITIATORS_LIST", Namespace="http://schemas.datacontract.org/2004/07/Almarai.Web.Services.DataEntities")]
            [System.SerializableAttribute()]
            public partial class INITIATORS_LIST : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
                
                [System.NonSerializedAttribute()]
                private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
                
                [System.Runtime.Serialization.OptionalFieldAttribute()]
                private Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M[] CompaniesField;
                
                [System.Runtime.Serialization.OptionalFieldAttribute()]
                private Almarai.GiveAway.GetInitiatorList.ALM_COUNTRY_M[] CountriesField;
                
                [System.Runtime.Serialization.OptionalFieldAttribute()]
                private Almarai.GiveAway.GetInitiatorList.ALM_DIVISION_M[] DivisionsField;
                
                [System.Runtime.Serialization.OptionalFieldAttribute()]
                private Almarai.GiveAway.GetInitiatorList.LOCATION[] LocationsField;
                
                [System.Runtime.Serialization.OptionalFieldAttribute()]
                private Almarai.GiveAway.GetInitiatorList.REGION[] RegionsField;
                
                [System.Runtime.Serialization.OptionalFieldAttribute()]
                private Almarai.GiveAway.GetInitiatorList.ALM_WKFLW_TYPE_M[] WorkflowTypesField;
                
                [global::System.ComponentModel.BrowsableAttribute(false)]
                public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
                    get {
                        return this.extensionDataField;
                    }
                    set {
                        this.extensionDataField = value;
                    }
                }
                
                [System.Runtime.Serialization.DataMemberAttribute()]
                public Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M[] Companies {
                    get {
                        return this.CompaniesField;
                    }
                    set {
                        if ((object.ReferenceEquals(this.CompaniesField, value) != true)) {
                            this.CompaniesField = value;
                            this.RaisePropertyChanged("Companies");
                        }
                    }
                }
                
                [System.Runtime.Serialization.DataMemberAttribute()]
                public Almarai.GiveAway.GetInitiatorList.ALM_COUNTRY_M[] Countries {
                    get {
                        return this.CountriesField;
                    }
                    set {
                        if ((object.ReferenceEquals(this.CountriesField, value) != true)) {
                            this.CountriesField = value;
                            this.RaisePropertyChanged("Countries");
                        }
                    }
                }
                
                [System.Runtime.Serialization.DataMemberAttribute()]
                public Almarai.GiveAway.GetInitiatorList.ALM_DIVISION_M[] Divisions {
                    get {
                        return this.DivisionsField;
                    }
                    set {
                        if ((object.ReferenceEquals(this.DivisionsField, value) != true)) {
                            this.DivisionsField = value;
                            this.RaisePropertyChanged("Divisions");
                        }
                    }
                }
                
                [System.Runtime.Serialization.DataMemberAttribute()]
                public Almarai.GiveAway.GetInitiatorList.LOCATION[] Locations {
                    get {
                        return this.LocationsField;
                    }
                    set {
                        if ((object.ReferenceEquals(this.LocationsField, value) != true)) {
                            this.LocationsField = value;
                            this.RaisePropertyChanged("Locations");
                        }
                    }
                }
                
                [System.Runtime.Serialization.DataMemberAttribute()]
                public Almarai.GiveAway.GetInitiatorList.REGION[] Regions {
                    get {
                        return this.RegionsField;
                    }
                    set {
                        if ((object.ReferenceEquals(this.RegionsField, value) != true)) {
                            this.RegionsField = value;
                            this.RaisePropertyChanged("Regions");
                        }
                    }
                }
                
                [System.Runtime.Serialization.DataMemberAttribute()]
                public Almarai.GiveAway.GetInitiatorList.ALM_WKFLW_TYPE_M[] WorkflowTypes {
                    get {
                        return this.WorkflowTypesField;
                    }
                    set {
                        if ((object.ReferenceEquals(this.WorkflowTypesField, value) != true)) {
                            this.WorkflowTypesField = value;
                            this.RaisePropertyChanged("WorkflowTypes");
                        }
                    }
                }
                
                public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
                
                protected void RaisePropertyChanged(string propertyName) {
                    System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
                    if ((propertyChanged != null)) {
                        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
                    }
                }
            }

您混淆了 oClient.GetInitiatorsList(userID) 的 return 类型,它 return 是 ALM_WKFLW_TYPE_M[] 而不是 INITIATORS_LIST[]

所以您的 WebMethod 应该如下所示:

[WebMethod]
        public static List<Devision> GetAllFields()
        {
            string userID= "1000";
            GetInitiatorList.MasterDataServiceClient oClient = new GetInitiatorList.MasterDataServiceClient();
            var almWkflwTypeMList = oClient.GetInitiatorsList(userID); 

            List<Devision> Division = new List<Devision>();
            foreach (var almWkflwTypeM in almWkflwTypeMList)
            {
                Division.Add(new Devision()
                {
                    DevisionCode = almWkflwTypeM.DivisionCode,
                    DevisionName = almWkflwTypeM.DivisionName
                });
            }
            return Division;
        }