2 votes

Comment ajouter des clés à une table de hachage à partir d'une liste dans le même ordre en C# ?

J'ai une liste d'entiers List<int> iFaciltyReqId = new List<int>(); et ses éléments sont enter image description here

J'ai besoin d'ordonner la table de hachage ci-dessous comme la liste ci-dessus (besoin d'exclure si l'élément n'existe pas).

Ma table de hachage est enter image description here

Le résultat devrait être des clés de hachage dans l'ordre 1153 1168 1155 1152 1176 676

J'ai essayé comme ci-dessous, mais le résultat ne correspond pas à mes attentes.

foreach (var c in iFaciltyReqId)
            {

                foreach (var d in ohmItemSeqs.Keys)
                {
                    if (Convert.ToInt32(c) == Convert.ToInt32(d))
                    {
                        sortedohmItemSeqs.Add(c, ohmItemSeqs.Values);
                    }
                }
            }

et le résultat était enter image description here Toute aide sera appréciée.

2voto

dnickless Points 7305

Je vous suggère de prendre simplement votre liste et de renvoyer tout ce qui est également dans la table de hachage comme ceci :

var result = yourList.Where(i => yourHashTable.Contains(i)); // works for both HashSet<int> and Hashtable

1voto

sbsd Points 166

A Hashtable est fondamentalement une structure de données non ordonnée. Vous devrez donc envisager d'autres solutions si le maintien de l'ordre est important.

Si vous voulez que l'ordre soit déterminé par l'insertion, OrderedDictionary peut être une option appropriée, bien que cela dépende de vos autres besoins pour l'objet.

Prograide.com

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.

Powered by:

X