Vorrei sapere se esiste un algoritmo noto o un modo migliore per fare quanto segue:
Ho una collezione con una sottoraccolta, ad esempio:
R1 R2 R3
-- -- --
M M M
N N
L L
A
Quello di cui ho bisogno è un algoritmo per ottenere il seguente risultato:
R1, R2: M N L
R2: A
R3: M
Questo è -non- ciò che voglio, ha più valori ripetuti per R rispetto a quanto sopra:
R1, R2, R3: M
R1, R2: N L
R2: A
Ho bisogno di raggruppare in modo da ottenere i gruppi più ottimizzati di R. La minor quantità di gruppi di R, meglio è che ottengo le raccolte secondarie più grandi.
Un altro esempio (con il risultato più ovvio):
R1 R2 R3
-- -- --
M M A
V V B
L L C
Deve risultare in:
R1, R2: M V L
R3: A B C
Ho bisogno di farlo in LINQ / C #.
Qualche soluzione? Suggerimenti? Link?