次のプロパティを持つオブジェクトのリストがあります。
int TownId, int CompanyId, int ProductId, int[] Prices
TownCompany
これをオブジェクトのリストに変換したいと思います。次のプロパティを持つ各アイテム:
int TownId, int CompanyId, int[] Products, int[] Prices
だから私はできる
flatList.GroupBy(l => new { l.TownId, l.CompanyId })
各町/会社のペアのすべての製品と価格を含むグループのリストを取得します。ここで、このルックアップの各キーについて、すべての値をフラット化/マージします。私は使用できるはずのようですSelectMany
が、私は常にそれに供給する投影法に少し混乱します...
このグループのリストを各キーのフラット化されたリストのリストに変換するにはどうすればよいですか?私は理にかなっていると思います。
例:
私の元のリストがこれである場合:
new[] {
new Item { TownId = 1, CompanyId = 10, ProductId = 100, Prices = new [] { 1, 2 } },
new Item { TownId = 1, CompanyId = 10, ProductId = 101, Prices = new [] { 3 } },
};
次のようなリストが必要です。
{
{ TownId: 1, CompanyId: 10, Products: [100, 101], Prices: [1, 2, 3] }
}