如何将不同类型的泛型列表合并到一个泛型自定义类型列表中?

问题描述:

比方说,我有三个不同类型的客户,地址和帐户通用名单。我如何将它们组合成一个'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> 
+0

你应该因为其'X has'模式转移到接口,而不是'X is'模式 –

+0

哪里的XML进来吗?你的问题目前还不清楚......你有一个CustomerProfile类吗?见http://tinyurl.com/so-hints –

简短的回答,你不能。

您将需要使用List<object>来存储它们全部或创建封装客户/地址/帐户的CustomerProfile类。

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

然后你就可以有

List<CustomerProfile>

+0

你能给我超类吗? – user995099

+0

类似的东西上面 – ChrisBint

+0

没有超一流的 - 在这种情况下,成分是你的朋友。 – Enigmativity

你有三个实体如你所说的客户,地址和帐户。您的两个实体“客户”和“地址”具有关联关系,但“帐户”不具有任何关联关系,这意味着它可以在该实体“列表”中包含帐户表中的所有帐户数据。

首先,你可以拿着它的地址创建一个属性在客户类的列表。 其次,您可以将另一个属性定义为帐户列表。

当加载应用程序,那么你可以得到所有的客户和他们的地址和填充的Cusotmer对象及其地址财产和帐户进去。

现在,当你的客户的对象,然后通过它的两个属性地址和帐户,你可以轻松地访问其数据。

您也可以使一个类CustomerProfile中,你可以定义你的所有实体的列表,然后当你运行你applicatoin那么你就可以填补他们的所有属性来访问客户档案的对象。