Ho un problema piuttosto difficile:
Ricevo periodicamente un Dictionary<decimal, int> subDict
contenente 100 record dove
- decimal è un prezzo
- e int è importo
Il risultato che mi serve è un dataGrid che mostri i prezzi con gli importi. Ma non riesco a visualizzare la sottocartella direttamente, perché spesso alla sottolista mancano alcuni prezzi:
subDict:
- Prezzo | Importo
- 100,0001 | 192
- 100.0005 | 123
- 100.0007 | 2
- 100.0008 | 123
sopra deve essere visualizzato come:
- Prezzo | Importo
- 100,0001 | 192
- 100.0002 | 0
- 100.0003 | 0
- 100.0004 | 123
- 100.0005 | 0
- 100.0006 | 0
- 100.0007 | 2
- 100.0008 | 123
Devo memorizzare un prezzo con 4 cifre decimali, tuttavia l'intervallo di prezzo può essere compreso tra 0 e 10 000. Il requisito finale è: una volta fatto clic sull'importo in DataGrid, devo essere in grado di ottenere l'accesso a tutti i valori nella riga.
Quindi ho deciso di chiedere aiuto - qualcuno può pensare ad una buona strategia per affrontare un problema del genere?
Un'idea che mi è venuta in mente sarebbe quella di inizializzare Dicionary<decimal, int> bigDictionary
contenente ogni prezzo nell'intervallo.
Tuttavia, se inizializzo questo dizionario con tutti i prezzi, con granularità specificata (ad esempio passo 0.0001), finisco con 10.000 * 10.000 record. Questa è una lista piuttosto ampia, che richiede una notevole quantità di memoria. Naturalmente è facile collegarlo a DataGrid in WPF, quindi questo può funzionare, ma a mio parere è molto inefficiente.
L'altra idea che ho sarebbe di salvare i prezzi in entrata a un Dictionary<decimal, int> smallDict
ma poi avrei bisogno di avere un qualche tipo di meccanismo per aggiornare DataGrid in questo modo, che i gap di prezzo sarebbero riempiti al volo. Inoltre avrei dovuto in qualche modo mantenere il dataGrid ordinato in base al prezzo.
La prima idea che sono in grado di implementare. Il secondo, non ne ho idea, quindi qualsiasi codice sarebbe eccellente.
Sarei fantastico per qualsiasi idea! Grazie per il tuo tempo