題して。
たとえば、10 個のアイテムを含むリストがあります。
Id Name GroupId
1 abc 123
2 abc1 124
3 abc2 125
4 abc3 126
5 abc4 123
6 abc5 123
7 abc6 124
8 abc7 125
9 abc8 127
10 abc9 124
Var groups = items.OrderBy(m => m.GroupId).GroupBy(o => o.GroupId);
それから私は5つのグループを持っています。
グループ 1 (123): {1、5、6}
グループ 2 (124): {2、7、10}
グループ 3 (125): {3, 8}
グループ 4 (126): {4}
グループ 5 (127): {9}
ここで、新しいグループの最大数量に基づいてそれらを再グループ化したいと思います。
例: maxQuantity = 4 の場合
newGroup1: {1,5,6,4} (4 は、group2 と group3 が newGroup1 内でグループ化できないためです)"それらには複数のアイテムがあり、newGroup1 は 1 つのアイテムしか挿入できません。"
newGroup2: {2,7,10,9} (newGroup1 と同じ説明)
newGroup3: {3,8} (2 つのアイテムしか残っていないため、グループ化する必要があります。)
コーディングに関するアイデアはありますか?私はこの問題を考えるために椅子に座って 8 時間を無駄にし、まだ数えています。
*maxQuantity = 2 の場合は別のケース
newGroup1: {1, 5}
newGroup2: {6, 4}
newGroup3: {2, 7}
newGroup4: {10, 9}
newGroup5: {3, 8}
上の例と同じ説明