C'è una struttura dati in C# che è come un dizionario ma che ha solo una chiave e non ha un valore. Fondamentalmente voglio una lista di interi che posso velocemente cercare e vedere se un certo valore è nella lista. Certo, per il mio uso corrente, un elenco non causerebbe alcun problema di prestazioni, ma non sembra adattarsi bene all'intento di ciò che sta facendo il mio codice.Struttura dati C# come un dizionario ma senza valore
48
A
risposta
73
Sì, si chiama HashSet<T>
e disponibile nella versione 3.5 del framework .NET. Se si utilizza .NET versione 2.0, è possibile utilizzare un dizionario e impostare i valori su null.
0
o utilizzare un SortedList in cui i valori devono essere univoci
4
Se 3.5 non è un'opzione che si potrebbe fare qualcosa di simile Dizionario < int, int> e semplicemente ignorare il valore. ho fatto questo in 2.0 e tendo ad impostare il valore allo stesso come la chiave.
2
Se non si utilizza .NET 3.5, Power Collections (open source) fornisce anche un'implementazione Set.
Problemi correlati
- 1. Dizionario struttura dati in R
- 2. Quale struttura dati utilizzare per un dizionario enorme ma costante in C++
- 3. Modifica valore dizionario C#
- 4. La migliore struttura dati per implementare un dizionario?
- 5. Struttura dati per implementare un dizionario con più indici?
- 6. Miglior struttura dati in C++ per trovare una stringa in un dizionario
- 7. C++ dizionario priorità
- 8. Stack inverso senza utilizzare alcuna struttura dati
- 9. Struttura dati dietro il tipo di dizionario T9
- 10. Come filtrare un dizionario per valore?
- 11. Formattare un doppio valore come moneta, ma senza il segno di valuta (C#)
- 12. Dizionario multi valore
- 13. Dizionario "Raggruppamento" per valore
- 14. Come utilizzare una struttura dati specifica come default_factory per un valore predefinito?
- 15. Struttura dati più appropriata (Python)
- 16. consulenza sulla struttura dati su C++
- 17. Come convertire i dati JSON con valore null in un dizionario
- 18. Corrispondenza regolare da un dizionario in C#
- 19. Un puzzle sulla struttura dati
- 20. C# JSON Serializzazione del dizionario in {chiave: valore, ...} invece di {chiave: chiave, valore: valore, ...}
- 21. Quale struttura dati utilizzo qui?
- 22. come inizializzare il dizionario come coppia (chiave, valore, valore) in C#
- 23. Get dizionario coppie chiave-valore senza conoscere il tipo
- 24. Struttura dati per processo decisionale Markov
- 25. Python: possiamo convertire una struttura ctypes in un dizionario?
- 26. Struttura C e struttura C++
- 27. C Valore # viene dichiarata ma mai usato
- 28. Perl: struttura dati, è un hash?
- 29. Come si crea un dizionario in Java?
- 30. C/C++: dati di riempimento o imbottitura in una struttura
Si noti che Hashset è stato introdotto in .NET Framework 3.5. Se sei su una versione precedente, suppongo che usi un dizionario e imposti tutti i valori su null. –
codeape
Un altro approccio in .NET 2.0 consiste nell'utilizzare 'KeyedCollection' e definire il metodo key extractor come valore identity. –
maggiori informazioni sull'utilizzo di hashset: http://bit.ly/1FYcf –