私はLinqのGroupByを使ってストーミングしています。私は1つの表現でそれを行うことはできませんが、問題を解決するための手がかりを持っていないと思います。GroupByとLinq with Objects
public class Shipment {
public string PortOfOrigin{get;set;}
public string PortOfDestination{get;set;}
public ICollection<Invoice> Invoices{get;set;}
}
public class Invoice{
public string InvoicePeriod {get;set;}
public decimal Amount {get;set;}
}
私はすべての請求書のコレクションを持って出荷のコレクションを持っている:
は、私は、次の2つのクラスを持っています。ここに例があります。
List<Shipment> shipments = new List<Shipment>
{
new Shipment { PortOfOrigin = "USLOS", PortOfDestionation = "UKLON",
Invoices = new List<Invoice>
{
new Invoice{InvoicePeriod = "201106", Amount = 1000},
new Invoice{InvoicePeriod = "201106", Amount = 2000},
new Invoice{InvoicePeriod = "201107", Amount = 1000}
}
},
new Shipment { PortOfOrigin = "USLOS", PortOfDestionation = "UKLON",
Invoices = new List<Invoice>
{
new Invoice{InvoicePeriod = "201106", Amount = 3000},
new Invoice{InvoicePeriod = "201107", Amount = 2000}
}
},
new Shipment { PortOfOrigin = "USDAL", PortOfDestionation = "UKLON",
Invoices = new List<Invoice>
{
new Invoice{InvoicePeriod = "201106", Amount = 3000}
}
}
};
今、私は次でグループ化する:
Shipment.PortOfOrigin、Shipment.PortOfDestionation、Shipment.Invoices.InvoicePeriod。
だから私はこの
PortOfOrigin PortOfDestination InvoicePeriod Amount
------------------------------------------------------------------------
USLOS UKLON 201106 6000
USLOS UKLON 201107 3000
USDAL UKLON 201106 3000
のような結果がInvoices.InvoicePeriodにグループに私がしたい、このようなグループを行うには、これがも可能ですしたいですか?
+1サンプルデータと必要な結果の例については、それはとても明確でよく定義されている質問を得ることはまれです:-) –
ありがとうございます。 –