说我有对象:
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都获取的功能。我认为这是正确的起点,但我不知道如何进一步。我想我需要创建一个匿名类型,但是不确定如何将收款人放入列表中并为每个收款人添加PaymentHeaders列表。
谁能帮我这个。
最佳答案
您将需要构建一个类型来保存此类型,或使用匿名类型:
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);
}