Tout d'abord, une liste (List<T>
) ne possède pas de "clés". Cependant, un Dictionary<TKey, TValue>
fait. Deuxièmement, pour répondre à votre question de performance: non, il ya effectivement une performance pénalité dans le calcul de ce hachage. Cependant, avant de sauter à la conclusion qu'il n'est pas nécessaire, examinez le code environnant et réfléchissez si l'auteur peut avoir réellement besoin du hash de MD5 et non de la chaîne elle-même. Troisièmement, si vous devez chercher quelque chose efficacement, vous pouvez utiliser un HashSet<T>
si vous avez juste besoin de vérifier son existence, ou Dictionary<TKey, TValue>
si vous devez associer les clés que vous recherchez avec une valeur. Si vous placez des chaînes dans un dictionnaire ou un hashset, C# générera déjà une valeur de hachage à partir de n'importe quelle chaîne que vous insérerez. Cette méthode utilise généralement un algorithme de hachage beaucoup plus rapide que MD5.