次のオブジェクトがあります。
countDictionary As Dictionary(of Category, Dictionary(of Date, Integer))
にはClass
列挙プロパティがあります。デモンストレーションのために、これを と呼びますMasterCategory
。
次のようなオブジェクトを取得しようとしています。
groupedCountDictionary As Dictionary(of MasterCategory, Dictionary(of Date, Integer)
私が得ることができた最高の結果は次のとおりです。
Lookup(of MasterCategory, Dictionary(of Date, Integer))
から:
countDictionary.ToLookup(Function(o) o.Key.MasterCategory, Function(o) o.Value)
その結果、IEnumerable (Of Dictionary(of Date, Integer))
各MasterCategory
値が生成されます。
ただし、Dictionary の IEnumerableを 1 つのディクショナリにフラット化し、すべての整数を日付ごとに合計 (合計カウント) する必要があります。
次に、(多数のスタックオーバーフローの投稿から)さまざまな と を使用して「平坦化」しようとしましselect
たgroup by
が、私の努力は不十分でした。
誰でもこれを行う方法を提案できますか? 可能な場合は、 VB.Netの回答を探します。
編集:
現在のコード
[Category Class]
- MasterCategory As Enum
- Name As String etc
[countDictionary As Dictionary(of Category Objects, Dictionary(of Date, Integer))]
- length 8
- Children of 8 Categories:
3 with MasterCategory A, 1097 int's by date
4 with MasterCategory B, 1097 int's by date
1 with MasterCategory C, 1097 int's by date
最大限の努力
[Lookup(of MasterCategory, Dictionary(of Date, Integer)]
- length 3
- Children of 3 Master Categories:
1 of IEnumerable(of Dictionary(of Date, Integer)) and length 3
3 x Dictionary length 1097 int's by date
1 of IEnumerable(of Dictionary(of Date, Integer)) and length 4
3 x Dictionary length 1097 int's by date
1 of IEnumerable(of Dictionary(of Date, Integer)) and length 1
3 x Dictionary length 1097 int's by date
必須
[Dictionary(MasterCategory, Dictionary(of Date, Integer))]
- length 3
- Children of 3 Master Categories:
3 of Dictionary(of Date, Integer) with summed total int's