Convertir une Liste<T> HashTable
J'ai une liste:
public class tmp
{
public int Id;
public string Name;
public string LName;
public decimal Index;
}
List<tmp> lst = GetSomeData();
Je veux convertir cette liste afin de la table de hachage, et je tiens à préciser Key
et Value
dans la Méthode d'Extension de l'Argument. Par exemple, j'ai peut vouloir Key=Id
et Value=Index
ou Key = Id + Index
et Value = Name + LName
. Comment puis-je faire cela?
stackoverflow.com/a/14496667/922198
Êtes-vous à l'aide d'une table de hachage pour des raisons d'héritage (par exemple à l'aide de tiers ou de l'ancien code)? Sinon, utilisez un Dictionnaire<TKey, TValue> au lieu de cela, comme d'autres commentateurs l'ont noté.
C'est certainement la première fois que j'ai vu quelqu'un faire le lien entre leur réponse à la question de commentaires.
Êtes-vous à l'aide d'une table de hachage pour des raisons d'héritage (par exemple à l'aide de tiers ou de l'ancien code)? Sinon, utilisez un Dictionnaire<TKey, TValue> au lieu de cela, comme d'autres commentateurs l'ont noté.
C'est certainement la première fois que j'ai vu quelqu'un faire le lien entre leur réponse à la question de commentaires.
OriginalL'auteur Arian | 2013-01-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
ToDictionary
méthode:Vous n'avez pas besoin d'utiliser
Hashtable
qui vient de .NET 1.1,Dictionary
est plus de type sécurisé.OriginalL'auteur cuongle
En C# 4.0, vous pouvez utiliser
Dictionary<TKey, TValue>
:Mais si vous voulez vraiment un
Hashtable
, pass dictionnaire comme un paramètre dansHashTable
constructeur...OriginalL'auteur tukaef
Vous pouvez utiliser le
ToDictionary
méthode d'extension et de passer le résultant Dictionnaire de laHashtable
constructeur:OriginalL'auteur sloth
Enfin, le NON-Linq Façon
OriginalL'auteur PaRiMaL RaJ
Comme une extension de la méthode, la conversion de
List<tmp>
àHashtable
;OriginalL'auteur daryal
Vous pouvez utiliser LINQ pour convertir la liste de Dictionnaire générique, qui est de loin meilleur que raw table de hachage:
OriginalL'auteur dzendras
en utilisant ForEach.
Vous pouvez supprimer tous les éléments de la liste, de les enlever un par un. vous pouvez aussi appeler Claire. Pouvez-vous voir la similitude? Le meilleur morceau de code est celui que vous n'avez pas écrit.
l'ajout et la suppression sont entièrement différents. mais avez-vous la scène ici que nous n'avons pas besoin de dictionnaire, qui est de structure intermédiaire. Si nous utilisons le dictionnaire, on ajoute des éléments à deux reprises, une fois dans le dictionnaire, et le second dans la table de hachage. Ne pensez-vous pas qui va frapper les performances si les données sont assez élevés.
Pas de. N'optimisent pas prématurément. La lisibilité du Code en premier.
OriginalL'auteur D J