Déclaration d'une table de hachage avec clé, valeur
Je suis en C# 2.0.
Je voudrais savoir si il est possible de déclarer un Hashtable
const lancé avec la touche & les valeurs. Je sais que c'est possible avec les tableaux:
public static string[] ColumnsNames =
{ "string1", "string2", "string3", "string4"
, "string5", "string6", "string7" };
mais comment pouvons-nous faire avec les tables de hashage.
Vous avez besoin d'un const ou un champ statique? Const n'est pas disponible pour
Koroghli - exactement Pourquoi voulez-vous faire cela? Je me dois de souligner le string[] n'est pas constante.
Koroghli - Vous faire comprendre que vous pourriez utiliser des initialiseurs de la collection sans être une variable statique de droit?
Hashtable
Koroghli - exactement Pourquoi voulez-vous faire cela? Je me dois de souligner le string[] n'est pas constante.
Koroghli - Vous faire comprendre que vous pourriez utiliser des initialiseurs de la collection sans être une variable statique de droit?
OriginalL'auteur enenkey | 2011-07-19
Vous devez vous connecter pour publier un commentaire.
Il ne peut pas être fait en C# 2.0. La langue ne prend pas en charge. La spécification du langage est ici et il n'y a aucune mention de inline dictionnaire d'initialisation.
C# 3.0 ne permettent dictionnaire initialisation semblable à la matrice d'initialisation que vous avez décrit dans votre question (langue spec ici). Voici un exemple:
OriginalL'auteur Trumpi
Croyons que cela devrait fonctionner.
OriginalL'auteur Ian
C'est facile avec C# 3 initialiseurs de la collection, qui peut toujours cible .NET 2. À l'aide d'un
Dictionary<string, string>
au lieu d'unHashtable
bien (ne pas utiliser les nongeneric collections sauf si vous devez vraiment1):Il n'y a rien de semblable en C# 2, si vous avez vraiment l'utiliser. Êtes-vous vraiment encore à l'aide de Visual Studio 2005? N'oubliez pas que vous pouvez toujours cible .NET 2 avec C# 3 et 4...
EDIT: Si vous vraiment veux le faire avec C# 2 et tables de hachage, vous pouvez écrire une méthode statique comme ceci:
Alors:
J'aimerais vraiment ne pas recommander que, bien que...
1 La même syntaxe de travailler avec
Hashtable
si vous êtes à l'aide de C# 3, mais c'est vraiment, vraiment la peine d'utiliser le générique collections, si vous le pouvez.OriginalL'auteur Jon Skeet
Vous dire
OriginalL'auteur Yahia
Vous devriez être en utilisant un
Dictionary
. En moyenne, leHastable
est d'environ 1/3 plus lent que le Dictionnaire (principalement en raison de la mise en œuvre). De plus, il est obsolètes.ReadOnlyDictionary
ou quelque chose.OriginalL'auteur Stefan Georgiev