1

オブジェクトがあるとします:

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 には Payee と Payments のリストがあります。

私が望んでいたのは、このデータを少し異なる形式に変換することでした。

だから私はList<Payee>、各受取人がList<PaymentHeader>

私は行くことから始めました:

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

したがって、ここでは、関連する PaymentHeaders を持つすべての Payees を取得しようとしていました。これは正しい出発点だと思いますが、それ以上進む方法がわかりません。匿名型を作成する必要があると思いますが、受取人をリストに入れ、受取人ごとに PaymentHeaders のリストを追加する方法がわかりません。

誰でもこれで私を助けることができますか?

4

1 に答える 1

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);
}
于 2013-05-14T20:56:37.647 に答える