Ho un dizionario, ad esempio Dictionary<int, string>
.
Quale sarebbe il modo migliore per ottenere il valore di stringa se conosco la chiave?Il modo migliore per interrogare un dizionario in C#
risposta
Se si conosce la chiave è nel dizionario:
value = dictionary[key];
Se sei non sono sicuro:
dictionary.TryGetValue(key, out value);
Non riesci a fare qualcosa di simile:
var value = myDictionary[i];
?
@Serg. .Grazie per l'aiuto – Ananth
Cosa intendi per migliore?
questo è il modo standard di per accedere Dictionary
valori chiave:
var theValue = myDict[key];
Se la chiave non esiste, questo sarà un'eccezione, quindi si consiglia di vedere se esiste si chiave prima di ottenere esso (non thread-safe):
if(myDict.ContainsKey(key))
{
var theValue = myDict[key];
}
in alternativa, è possibile utilizzare myDict.TryGetValue
, anche se questo ha richiesto l'utilizzo di un parametro al fine di ottenere il valore.
Invitiamoci l'un l'altro - sarà equo almeno))) – zerkms
myDict.TryGetValue è più efficiente in quanto ha bisogno solo di calcolare il tasto una volta, a differenza di Contains seguito da un index che lo fa due volte. – Martin
@ Martin: Scommetto che l'operazione di ricerca della chiave è 'O (1)', quindi non devi preoccuparti. Ad ogni modo, +1 – zerkms
string value = dictionary[key];
Dictionary.TryGetValue
è il modo più sicuro o utilizzare indicizzatore dizionario come altri suggerito ma ricordatevi di prendere KeyNotFoundException
@ Comic..Grazie per l'aiuto – Ananth
Beh, io non sono qu sei sicuro di quello che stai chiedendo qui, ma credo che riguardi un dizionario?
È abbastanza semplice ottenere il valore di stringa se si conosce la chiave.
string myValue = myDictionary[yourKey];
Se si desidera utilizzare come un indicizzatore (se questo dizionario è in una classe), è possibile utilizzare il seguente codice.
public class MyClass
{
private Dictionary<string, string> myDictionary;
public string this[string key]
{
get { return myDictionary[key]; }
}
}
Se si desidera eseguire una query contro una collezione Dictionary, è possibile effettuare le seguenti operazioni:
static class TestDictionary
{
static void Main() {
Dictionary<int, string> numbers;
numbers = new Dictionary<int, string>();
numbers.Add(0, "zero");
numbers.Add(1, "one");
numbers.Add(2, "two");
numbers.Add(3, "three");
numbers.Add(4, "four");
var query =
from n in numbers
where (n.Value.StartsWith("t"))
select n.Value;
}
}
È inoltre possibile utilizzare la proprietà n.Key in questo modo
var evenNumbers =
from n in numbers
where (n.Key % 2) == 0
select n.Value;
- 1. Il modo migliore per filtrare un dizionario in Python
- 2. Il modo migliore per interrogare i riferimenti in CloudKit?
- 3. Il modo migliore per interrogare XDocument con LINQ?
- 4. Il modo migliore per convertire una mappa Java in un dizionario in C#
- 5. modo migliore per ordinare un dizionario in gruppi utilizzando Python
- 6. Il modo migliore per gestire un KeyNotFoundException
- 7. C'è un modo migliore per aggregare un dizionario usando LINQ?
- 8. Il modo migliore per rendere scrivibile un file in C#
- 9. Il modo migliore per impostare un programma modulare in C#
- 10. Il modo migliore per generare un float casuale in C#
- 11. Il modo migliore per spostare un array in C?
- 12. Il modo migliore per convertire la stringa di query nel dizionario in C#
- 13. modo migliore per utilizzare un C Interfaccia ++
- 14. pitone: qual è il modo migliore per controllare più chiavi esiste in un dizionario?
- 15. Il modo migliore per verificare se esiste una chiave in un dizionario prima di aggiungerla?
- 16. Esiste un modo migliore per memorizzare un dizionario twoway piuttosto che archiviare il suo inverso separato?
- 17. Qual è il modo migliore per interrogare il conteggio delle righe da Core Data?
- 18. Qual è il modo migliore per analizzare questo in C++?
- 19. Il modo migliore per identificare un utente in modo univoco
- 20. Il modo migliore per refactoring questa classe statica in C#?
- 21. Modo migliore per il confronto List in C#
- 22. Qual è il modo migliore per impostare tutti i valori in un dizionario C# <string,bool>?
- 23. Il modo migliore per gestire l'overflow integer in C#?
- 24. Qual è il modo migliore per scrivere commenti in C?
- 25. Un modo migliore per aprire i file HDF5 in C++
- 26. Un modo migliore per gestire NullReferenceExceptions in C#
- 27. Il modo migliore per simulare un dominio?
- 28. Il modo migliore per portare il gioco C++ sul web
- 29. Il modo migliore per spostare un __m128i?
- 30. Un modo migliore per sostituire molte stringhe - offuscamento in C#
@ Joe..Grazie per l'aiuto – Ananth