如何将不同类型的通用列表组合为类型的通用自定义列表

本文关键字:列表 类型 自定义 组合 同类型 | 更新日期: 2023-09-27 18:12:05

假设我有三个不同类型的通用列表Customer、Address和Account。我如何将它们组合成一个"CustomerProfile"类型的通用列表?

Example:
Public class Customer 
{    
    long customerId{ get; set; }    
    int titleId{ get; set; }
        string firstName{ get; set; }
        string middleName{ get; set; }
        int maritalStatusId { get; set; }
}
public class Address
{  
        public long addressId{ get; set; } 
        long customerId{ get; set; } 
        short addressTypeId{ get; set; } 
        string postCode{ get; set; } 
        string geoCodeLattitude{ get; set; } 
        string geoCodeLongitude{ get; set; } 
}  
public class Account
{  
    long accountID{ get; set; } 
        string accountDesc{ get; set; } 
        short accountStatusID{ get; set; } 
        DateTime joinDate{ get; set; } 
        DateTime insertDateTime{ get; set; } 
}  

返回新的CustomerProfile列表时,结果集应该如下所示:

<CustomerProfile>
<Customer>    
    <customerId>
    <titleId>
        <firstName>
        <middleName>
        <maritalStatusId>
</Customer>
<Address>
        <addressId>
        <customerId>
        <addressTypeId>
        <postCode>
        <geoCodeLattitude>
        <geoCodeLongitude>
</Address>
<Account>
    <accountID>
        <accountDesc>
        <accountStatusID>
        <joinDate>
        <insertDateTime>
</Account>
</CustomerProfile>

如何将不同类型的通用列表组合为类型的通用自定义列表

简而言之,你不能。

您需要使用List<object>来存储它们,或者创建一个CustomerProfile类来封装客户/地址/帐户。

public class CustomerProfile
{
public Customer { get; set;}
public Address { get; set;}
public Account { get; set:}
}

那么你可以有

List<CustomerProfile>

您有三个实体,如您所说的客户、地址和帐户。你的两个实体Customer和Address有关联,但是Accounts没有任何关联,这意味着它可以保存该实体中Account表中的所有Account数据。

首先,您可以在customer类中创建一个列表属性,用于保存其地址。其次,你可以定义另一个属性作为帐户列表。

当您加载应用程序时,您可以获得所有客户和他们的地址,并将客户对象及其地址属性和帐户填充到其中。

现在,当你得到客户对象,然后通过它的两个属性地址和帐户,你可以很容易地访问它的数据。

你也可以创建一个类CustomerProfile,你可以在其中定义你所有的实体作为一个列表,然后当你运行你的应用程序时,你可以填充他们所有的属性来访问客户配置文件的对象