Quelle est la manière la plus efficace de transformer la liste des valeurs d'un dictionnaire en un tableau ?
Par exemple, si j'ai un Dictionary
où Key
es String
y Value
es Foo
Je veux obtenir Foo[]
J'utilise VS 2005 et C# 2.0.
Quelle est la manière la plus efficace de transformer la liste des valeurs d'un dictionnaire en un tableau ?
Par exemple, si j'ai un Dictionary
où Key
es String
y Value
es Foo
Je veux obtenir Foo[]
J'utilise VS 2005 et C# 2.0.
Je ne vois pas comment ToArray() pourrait être plus rapide que la copie directe - qui semble être minimaliste.
Il existe une fonction ToArray() sur les valeurs :
Foo[] arr = new Foo[dict.Count];
dict.Values.CopyTo(arr, 0);
Mais je ne pense pas que ce soit efficace (je n'ai pas vraiment essayé, mais je suppose qu'il copie toutes ces valeurs dans le tableau). Avez-vous vraiment besoin d'un tableau ? Si non, j'essaierais de passer IEnumerable :
IEnumerable<Foo> foos = dict.Values;
De nos jours, une fois que vous disposez de LINQ, vous pouvez convertir les clés du dictionnaire et leurs valeurs en une seule chaîne.
Vous pouvez utiliser le code suivant :
// convert the dictionary to an array of strings
string[] strArray = dict.Select(x => ("Key: " + x.Key + ", Value: " + x.Value)).ToArray();
// convert a string array to a single string
string result = String.Join(", ", strArray);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.