2010-08-04 9 views
2

Le langage de codage est C# 3.0
Quelle est la méthode la plus optimale pour récupérer toutes les clés Hashtable dans une chaîne séparée par un séparateur « »
est la boucle ou la boucle foreach la seule option?Récupérer toutes les clés dans une table de hachage dans une chaîne

Mise à jour: les touches sont des chaînes déjà

Cordialement,
naveenj

+0

sont les chaînes clés déjà? c'est-à-dire un 'Dictionnaire '? – tzaman

Répondre

7

Voulez-vous dire vraiment un Hashtable non générique? Vous pouvez utiliser LINQ, en supposant que est à votre disposition:

string keys = string.Join(",", table.Keys.Cast<object>() 
             .Select(x => x.ToString()) 
             .ToArray()); 

Il peut y avoir des moyens plus rapides, mais c'est la façon dont je vais dans un souci de lisibilité. Seulement micro-optimiser quand vous avez prouvé que c'est un goulot d'étranglement.

+0

merci jon .. même si il va taper cast même si c'est un objet .. juste génial ... – naveen

5

Vous pouvez également utiliser la IDictionaryEnumerator:

IDictionaryEnumerator enum = table.GetEnumerator(); 
while (enum.MoveNext()) 
{ 
    text += enum.Key + ", "; 
    text += enum.Value + "\n"; 
} 
Questions connexes