2010-03-01 13 views
1

J'ai une hashtable avec des paires de valeurs id-name. L'identifiant est saisi en tant que clé et le nom en tant que valeur. Je puis recherche dans la table, et en retournant la clé dont la valeur correspond à une chaîne spécifiée comme ceci: (folderValue est la chaîne spécifiée)System.Collections hashtable - recherche de la dernière correspondance ajoutée

String^ key; 
for each (String^ aKey in table.Keys) 
{ 
    if ((String^)table.default[aKey] == folderValue) 
    { 
     key = aKey; 
     break; 
    } 
} 

Ma question est, il pourrait y avoir plus d'une valeur qui correspond à folderValue. Y at-il un moyen de commencer la recherche à partir des entrées les plus récentes et retour?

TIA

+2

Non, il n'y en a pas. – SLaks

Répondre

2

C'est une façon assez non standard d'utiliser une table de hachage. Comment utilisez-vous ces données? Envisagez d'autres structures de données, par exemple List<MyCustomClass>, où MyCustomClass contient ID, Name et implémente IComparable qui prend en compte une date ou d'autres données basées sur le temps. Récupérer des éléments de cette liste et les trier L'utilisation de LINQ par rapport à cela vous donnerait un bon moyen de récupérer des données.