合并两个不同类型的通用列表

时间:2011-03-11 16:09:47

标签: c#

我有两个列表

List <BillDetails>= new List<BillDetails>();  
List<Header>=new List<Header>();

Public class Billdetails  
{    
    public string chargecategory;  
    public string materialcode;  
    public int price;  
    public int quantity;  
}

public class Header  
{  
    public string chargecode;  
    public string customername;  
}  

这两个列表没有任何关联。但我必须将这两个组合成一个列表并将其绑定到gridview。

请帮助我合并或合并这两个列表,但两者之间没有任何共同之处。

提前致谢。

2 个答案:

答案 0 :(得分:8)

假设它们都是正确的顺序和相同的长度(很大的假设!)你可以将它们压缩并投射到匿名类型:

    List<BillDetails> billDetails = new List<BillDetails>();
    List<Header> headers =new List<Header>();

    var results = billDetails.Zip(headers, (details, header) => 
                                  new { details.chargecategory, details.materialcode, header.chargecode, header.customername })
                             .ToList();

答案 1 :(得分:4)

IEnumerable both = billDetails.OfType<object>().Concat(headers.OfType<object>());