web-dev-qa-db-fra.com

Convertir un dictionnaire en une liste de collections en C #

J'ai un problème en essayant de convertir un dictionnaire en liste.

Exemple si j'ai un dictionnaire avec une chaîne de modèle comme clé et une chaîne comme valeur. Ensuite, je souhaite convertir la clé de dictionnaire en liste de collecte sous forme de chaîne.

Dictionary<string, string> dicNumber = new Dictionary<string, string>();
List<string> listNumber = new List<string>();

dicNumber.Add("1", "First");
dicNumber.Add("2", "Second");
dicNumber.Add("3", "Third");

// So the code may something look like this
//listNumber = dicNumber.Select(??????);
84
Edy Cu

Pour convertir les clés en une liste qui leur est propre:

listNumber = dicNumber.Select(kvp => kvp.Key).ToList();

Ou vous pouvez le raccourcir sans même vous soucier d'utiliser select:

listNumber = dicNumber.Keys.ToList();
158
Justin Niessner

Alternativement:

var keys = new List<string>(dicNumber.Keys);
20
stuartd

Si vous voulez utiliser Linq, vous pouvez utiliser l'extrait suivant:

var listNumber = dicNumber.Keys.ToList();
16
Pop Catalin

Si vous voulez convertir les clés:

List<string> listNumber = dicNumber.Keys.ToList();

sinon si vous voulez convertir des valeurs:

List<string> listNumber = dicNumber.Values.ToList();
7
daniele3004
foreach (var item in dicNumber)
{
    listnumber.Add(item.Key);
}
4
explorer

Si vous voulez passer la collection de clés de dictionnaire dans un argument de méthode.

List<string> lstKeys = Dict.Keys;
Methodname(lstKeys);
-------------------
void MethodName(List<String> lstkeys)
{
    `enter code here`
    //Do ur task
}
3
arun