Metodo per memorizzare il contenuto di un Dictionary

di il
4 risposte

Metodo per memorizzare il contenuto di un Dictionary

Salve a tutti del forum,
come da oggetto, volevo sapere se è possibile memorizzare un dictionary<string,string> in un file mediante qualche oggetto già esistente in DotNet.

Ovviamente anche il processo inverso.

Leggevo in merito alla serializzazione, ma questa sembra riferirsi solo alle classi.

L'altra opzione a cui ho pensato è quella di implementare da me un codice ad hoc per scrivere i contenuti del dictionary in un file e successivamente ricaricarli quando servono.

Cosa mi conviene fare?

Grazie per aver letto
Nick

4 Risposte

  • Re: Metodo per memorizzare il contenuto di un Dictionary

    Ok,
    andando avanti ho implementato un codice molto semplice per salvare i dati presenti in un semplice Dictionary<string.string>
    
    public void test() {
    	this._ConfigData.Add("1","uno");
    	this._ConfigData.Add("2","due");
    	this._ConfigData.Add("3","tre");
    	this._ConfigData.Add("4","quattro");
    	this._ConfigData.Add("5","cinque");
    	this._ConfigData.Add("6","sei");
    	this._ConfigData.Add("7","sette");
    	saveData();
    }
    
    public void saveData() {
          using (StreamWriter sw = new StreamWriter(this._FullFileName)) {
    	foreach (var entry in this._ConfigData) {					     sw.WriteLine("[{0}]  {1}", entry.Key, entry.Value);
    	}
          }			
    }
    
    Ma ora, per la lettura del file, esiste un modo inverso del:
    sw.WriteLine("[{0}] {1}", entry.Key, entry.Value);

    O devo fare a manina la lettura della riga e inserimento manuale nel dictionary?

    Saluti
    Nick
  • Re: Metodo per memorizzare il contenuto di un Dictionary

    Ciao,
    intendi scrittura del dictionary che hai messo come esempio?!
  • Re: Metodo per memorizzare il contenuto di un Dictionary

    cnesan ha scritto:


    O devo fare a manina la lettura della riga e inserimento manuale nel dictionary
    Salve mi sa proprio di sì, il tuo LoadData avrà uno StreamReader e ogni riga dovrai spezzarla al "]" e inserirla con Add(), ma attenzione alle key che devono essere univoche. Quindi un try ci stà bene per ogni evenienza.

    Altrimenti perché non serializzi/deserializzi _ConfigData in un file Json? Se non ricordo male guarda il namespace System.Runtime.Serialization.Json .
  • Re: Metodo per memorizzare il contenuto di un Dictionary

    In effetti ci sono diverse soluzioni.

    Sto valutando di fare degli oggetti che in realtà già sono stati fatti in Java.

    In questo momento, tratto esclusivamente stringhe (che nelle elaborazioni successive possono essere convertite in altri tipi in base alle necessità).

    Stavo studiando i Dictionary e da un punto di vista:
    - elaborativo sono ok
    - di registrazione su mem.di massa sono ok
    - di ripristino non sono tanto ok.

    Al momento ho fatto la cosa alla vecchia maniera:
    - oggetto per la scrittura e lettura su file (Operazioni STD IO)
    - gestione inserimento e scansione da e verso file vedi punto precedente
    - restituzione del dictionary valorizzato

    Avevo trovato con molta facilità come poter trasferire un dictionary in un file (contenuto) ma non avevo trovato niente per l'operazione inversa, pertanto chiedevo semplicemente se e qual'era il modo per ricaricare i dati per come li avevo salvati.

    Grazie a tutti.
    Nick
Devi accedere o registrarti per scrivere nel forum
4 risposte