2013-05-14 21 views
1

說我有對象:如何獲得的LINQ to從一種形式轉換到另一個數據

public class PaymentHeader 
{ 
    public Payee Payee { get; set; } 
    public List<Payment> Payments { get; set; } 
} 

public class Payment 
{ 
    public int Amount { get; set; } 
} 

public class Payee 
{ 
    public string Name { get; set; } 
} 

所以一個PaymentHeader有收款人和付款清單。

我想要的是將這些數據轉換成稍微不同的格式。

所以,我是一個List<Payee>其中每個收款人有List<PaymentHeader>

我開始去後:

var data = paymentHeaders.GroupBy(x => x.Payee) 

所以在這裏,我想實現讓所有的收款人及其相關PaymentHeaders。我認爲這是一個正確的起點,但我不知道如何進一步發展。我想我需要創建一個匿名類型,但不確定如何將Payees放入列表中,併爲每個收款人添加PaymentHeaders列表。

任何人都可以幫助我。

回答

4

您將需要建立一個類型來保存這一點,或使用匿名類型:

var data = paymentHeaders.GroupBy(x => x.Payee) 
       .Select(g => new { Payee = g.Key, Headers = g.ToList() }) 
       .ToList(); 

foreach(var d in data) 
{ 
    Console.WriteLine("Payee {0} has {1} headers", d.Payee, d.Headers.Count); 
} 
+0

正是我一直在尋找 – user2005657

相關問題