1

題して。

たとえば、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}

上の例と同じ説明

4

1 に答える 1