Creazione di oggetti flessibili / dinamici o Alternativa all'elenco di elenchi [chiusa]

0

Ho un file xlsx, che ha alcune schede con dati diversi. Voglio essere in grado di salvare ogni riga di una scheda in un elenco. La prima cosa che viene in mente è una lista di liste, ma mi chiedevo se c'è un altro modo. Mi piacerebbe salvare quell'informazione in un oggetto, con tutti i suoi benefici, ma non riesco a pensare a un modo per generare / creare oggetti così diversi al volo. I dati in xlsx sono diversi e idealmente il programma è agnostico di qualsiasi contenuto.

Quindi invece di es. creare un elenco per ogni riga, piuttosto che mettere quell'elenco in un altro elenco per ogni scheda e ogni scheda in un altro elenco, vorrei memorizzare le informazioni che ogni riga rappresenta in un singolo oggetto e avere semplicemente un elenco di oggetti diversi. / p>

La domanda può essere riassunta come segue: Qual è un'alternativa all'elenco di elenchi?

Un piccolo grafico per visualizzare il problema:

+--------------------------------------------------------------------+
|LIST                                                                |
|                                                                    |
|    +------------------+ +------------------+ +-----------------+   |
|    | Class1           | | Class2           | | Class3          |   |
|    |------------------| |------------------| |-----------------|   |
|    | var1             | | var1             | | var5            |   |
|    | var2             | | var2             | | var6            |   |
|... | var3             | |                  | | var7            |...|
|    |                  | |                  | |                 |   |
|    |                  | |                  | |                 |   |
|    |                  | |                  | |                 |   |
|    |                  | |                  | |                 |   |
|    +------------------+ +------------------+ +-----------------+   |
|                                                                    |
+--------------------------------------------------------------------+
    
posta cete3 27.11.2013 - 14:47
fonte

1 risposta

3

Presumo che i fogli di lavoro contengano dati tabulari, ovvero che la prima riga contenga nomi di campi e che le seguenti righe contengano valori. In tal caso, sarebbe opportuno definire una classe Table le cui istanze contengano ciascuna il contenuto di un foglio di lavoro. Questo oggetto Table potrebbe contenere informazioni generali relative a un foglio di lavoro, se necessario, come il nome della scheda del foglio di lavoro.

Potrebbe anche avere una lista che contiene i nomi delle colonne o un dizionario che tiene gli indici delle colonne con i nomi delle colonne come chiave. Se si definisce una classe Column per questo scopo (anziché solo una stringa per il nome della colonna), consente di memorizzare informazioni aggiuntive relative a una colonna, come il tipo (numerico, testo, data) e il formato di visualizzazione.

Anche se al momento non hai bisogno di questo tipo di infrastruttura, avere tali classi ti consente di aggiungere questo tipo di funzionalità molto più facilmente in seguito.

La classe Table conterrà anche un elenco di righe. Anche in questo caso, avere una classe Row può avere vantaggi. Tuttavia, sarebbe ok rappresentare una riga come una matrice di stringhe, per esempio. Poiché ogni riga della tabella ha la stessa lunghezza, qui non è necessario un elenco.

Invece di usare le stringhe per memorizzare i valori, avere una classe Value o struct può anche avere vantaggi. Un tal tipo potrebbe convertire automaticamente le stringhe in un tipo appropriato, potrebbe eseguire confronti tra valori dello stesso tipo ecc.

Senza saperne di più sui tuoi dati e sul tipo di logica che vuoi applicare, è difficile darti una risposta su misura per le tue esigenze.

    
risposta data 27.11.2013 - 16:55
fonte

Leggi altre domande sui tag