Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110

    [VB.NET] Recuperare la chiave di un elemento in un Dictionary

    Ciao a tutti!
    E' sempre stato utile e facile recuperare il "value" di un elemento di un Dictionary ma ora avrei necessità di recuperare la "Key"...è possibile?

    Nella mia funzione ho l'id dell'elemento con il quale posso puntare allo stesso.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Ciao a tutti!
    E' sempre stato utile e facile recuperare il "value" di un elemento di un Dictionary ma ora avrei necessità di recuperare la "Key"...è possibile?

    Nella mia funzione ho l'id dell'elemento con il quale posso puntare allo stesso.
    A differenza della key i valori potrebbero non essere unici. E' così nel tuo caso?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Banalmente, potresti eseguire un ciclo For sulle chiavi del dizionario (proprietà Keys) ed estrarre per ciascuna il valore corrispondente memorizzato nell'oggetto. Quando hai trovato l'elemento che coincide con il valore, la chiave corrente è quella cercata.

    codice:
    For Each key As String In diz.Keys
    	If diz(key) = valueToFind Then
    		Return key
    	End If
    Next

    In alternativa, potresti sintetizzare il ciclo con una espressione LINQ.

    codice:
    Dim query = From key In diz.Keys
    	Let currentValue = diz(key)
    	Where currentValue = valueToFind
    	Select key
    	
    Dim foundKey = query.FirstOrDefault()

    Tieni a mente quanto ti è già stato detto, ossia che i valori potrebbero essere duplicati (a differenza delle chiavi), quindi decidi tu come gestire le casistiche, e anche il fatto che questo tipo di ricerche andrebbero ridotte al minimo, altrimenti tanto vale invertire chiave con valore o utilizzare un dizionario parallelo per velocizzare il processo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110
    Si Si ragazzi! I valori non possono essere duplicati perchè si tratta di un elenco "statico" che creo da codice (i valori non sono input utente quindi sono sempre quelli)!
    Comunque sia alla fine ho scoperto la funzione keys(<indice>) che era proprio quello che cercavo!

    Grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.