Je me demande s'il est possible de stocker un identifiant caché avec chaque entrée d'une boîte de liste. La raison en est que j'ai une table qui contient un identifiant unique provenant d'une base de données (non visible par l'utilisateur mais utilisé pour identifier de manière unique chaque enregistrement). Je mets en cache la table en mémoire et j'utilise un dictionnaire dont la clé est l'identifiant.
J'aimerais créer une boîte de liste qui me permette de sélectionner l'un des enregistrements - le texte affiché ne serait pas l'identifiant unique mais un champ descriptif (tel que 'Nom') qui est probablement unique mais qui n'est pas appliqué et sur lequel il n'y a pas d'index. Donc, par exemple, si j'ai :
Id Name
-- ----
2 Rod
5 Jane
15 Freddy
Puis en sélectionnant Jane
je pourrais d'une manière ou d'une autre accéder facilement à l'identifiant. 5
Mon problème est que je ne trouve pas le moyen d'associer l'identifiant unique ( 5
) avec la sélection ( Jane
) afin que je puisse facilement identifier l'enregistrement mis en cache. Je sais que je peux utiliser des variables de contrôle, mais cela me donne simplement une liste de toutes les chaînes de caractères de la liste, ce qui n'est pas ce que je veux. De plus, l'index (par exemple lors de l'insertion) ne semble pas être fiable à cette fin.
Le seul moyen que j'ai trouvé pour y parvenir est d'avoir un autre dictionnaire faisant correspondre le nom à l'identifiant. Pour un certain nombre de raisons, cette solution n'est pas optimale.
Est-ce que je rate quelque chose ici ? Existe-t-il un moyen plus simple de procéder ?