Comment faire une boucle par le biais d'un SortedList, d'obtenir à la fois la clé et la valeur
Le code suivant effectue une boucle dans une liste et obtient les valeurs, mais comment pourrais-je écrire une déclaration similaire qui obtient à la fois les clés et les valeurs
foreach (string value in list.Values)
{
Console.WriteLine(value);
}
e.g quelque chose comme cela
foreach (string value in list.Values)
{
Console.WriteLine(value);
Console.WriteLine(list.key);
}
code de la liste est:
SortedList<string, string> list = new SortedList<string, string>();
OriginalL'auteur Wayneio | 2012-12-23
Vous devez vous connecter pour publier un commentaire.
De msdn:
GetEnumerator renvoie un énumérateur de type
KeyValuePair<TKey, TValue>
qui parcourt leSortedList<TKey, TValue>
.Comme Jon dit, vous pouvez utiliser
var
mot-clé au lieu d'écrire le nom de type de variable d'itération (type sera déduit de la consommation):var
pour éviter les interminables déclaration de variable.d'accord, var est mieux dans la vie réelle, mais j'ai écrit plein de nom de type à montrer quel est le type réel de kvp.
Qui fait vraiment de sens, il peut être intéressant de montrer que les deux approches.
Aussi à partir de la documentation liée: lors de l'énumération, de l'ordre de tri est maintenu. Si vous êtes
foreach
ing dans le bon ordre (par touches, par ordre croissant).var kvp ne fonctionne pas pour moi. Je ne sais pas pourquoi
OriginalL'auteur Sergey Berezovskiy
D'excuses...
ce n'était pas le sujet (boucle à travers les valeurs). Ma question était en parcourant les paires clé-valeur, et pas seulement les valeurs.
Quittez ce ici si il n'y a pas d'objections comme une option possible pour obtenir des valeurs de SortedList collection.
J'ai juste essayé de comprendre cette erreur ainsi et ma solution a été d'utiliser le
DictionaryEntry
type de remplacer le erroring arrièreKeyValuePair
type.Trouvé à partir de MS de référence
https://msdn.microsoft.com/en-us/library/system.collections.dictionaryentry(v=vs. 100).aspx
Dans mon cas, j'ai eu le code de la création d'un
SortedList
type de collecte et de ni lavar
ouKeyValuePair
types de travail (var
d'erreur lorsque essayant de lire la clé/valeur de l'élément de la collection et de laKeyValuePair
d'erreur dans la première boucle de définition. Les deux erronées avec"Specified cast is not valid"
)Donc voici un exemple de code qui a fonctionné pour moi:
HTH
Dave
OriginalL'auteur Dave
cela peut vous aider.
OriginalL'auteur Chu Chau
Juste itération en utilisant les touches et obtenir la valeur de chaque touche:
Merci, bon à savoir que ce que je fais n'est pas efficace.
OriginalL'auteur gotqn