Convertir Dictionnaire.keyscollection de tableau de chaînes de caractères
J'ai un Dictionary<string, List<Order>>
et je veux avoir la liste des clés dans un tableau. Mais lorsque je choisis
string[] keys = dictionary.Keys;
Ce n'est pas compilé.
Comment puis-je convertir des KeysCollection
à un tableau de Chaînes de caractères?
Vous devez vous connecter pour publier un commentaire.
En supposant que vous êtes en utilisant .NET 3.5 ou ultérieure (
using System.Linq;
):Sinon, vous devrez utiliser la méthode CopyTo, ou l'utilisation d'une boucle :
error C2039: 'ToArray' : is not a member of 'System::Collections::Generic::Dictionary<TKey,TValue>::KeyCollection'
System.Linq.Enumerable
; pour autant que je sais, C++/CLI ne prend pas en charge l'extension de la méthode, de sorte que vous devez appeler un par un, comme statique méthode:System::Linq::Enumerable::ToArray(dictionary.Keys)
Avec
dictionary.Keys.CopyTo (keys, 0);
Si vous n'avez pas besoin du tableau (qui n'est généralement pas le besoin), vous pouvez simplement effectuer une itération sur les Touches.
Utilisez cette option si vos clés n'est pas de type chaîne de caractères. Il nécessite LINQ.
IEnumerable<string>
, pas unstring[]
string
(même si à l'origine il y avait un problème de formatage qui l'a empêché de montrer).Ou peut-être une pratique extension générique...
Malheureusement, je n'ai pas de VS à proximité de le vérifier, mais je pense que quelque chose comme cela peut fonctionner:
où ??? est votre type de clé.