Convertir Dictionary.keyscollection en tableau de chaînes

J’ai un Dictionary<string, List> et je veux avoir la liste des clés dans un tableau. Mais quand je choisis

 ssortingng[] keys = dictionary.Keys; 

Cela ne comstack pas.

Comment convertir KeysCollection en un tableau de chaînes?

En supposant que vous utilisez .NET 3.5 ou version ultérieure (en using System.Linq; ):

 ssortingng[] keys = dictionary.Keys.ToArray(); 

Sinon, vous devrez utiliser la méthode CopyTo ou utiliser une boucle:

 ssortingng[] keys = new ssortingng[dictionary.Keys.Count]; dictionary.Keys.CopyTo(keys, 0); 

Avec dictionary.Keys.CopyTo (keys, 0);

Si vous n’avez pas besoin du tableau (dont vous n’avez généralement pas besoin), vous pouvez simplement parcourir les clés.

Utilisez ceci si vos clés ne sont pas de type ssortingng. Il nécessite LINQ.

 ssortingng[] keys = dictionary.Keys.Select(x => x.ToSsortingng()).ToArray(); 

Malheureusement, je n’ai pas VS à proximité pour vérifier cela, mais je pense que quelque chose comme ça pourrait fonctionner:

 var keysCol = dictionary.Keys; var keysList = new List< ???>(keysCol); ssortingng[] keys = keysList.ToArray(); 

où ??? est votre type de clé.

Ou peut-être une extension générique pratique …

  public static T2[] ToValueArray(this Dictionary value) { var values = new T2[value.Values.Count]; value.Values.CopyTo(values, 0); return values; }