Comparaison du contenu d'une collection dans la méthode Equals
Dans votre méthode Equals, vous souhaitez comparer le contenu des collections, notamment un dictionnaire et un IList . Bien qu'il n'existe pas de méthode intégrée pour comparer directement ces deux types, vous pouvez utiliser la méthode Enumerable.SequenceEqual pour déterminer si leurs contenus sont égaux.
Enumerable.SequenceEqual
Cette méthode accepte deux séquences et compare leurs éléments à l'aide d'un IEqualityComparer spécifié. Il renvoie vrai si les séquences contiennent le même nombre d'éléments et que chaque paire d'éléments correspondante est égale.
Comparaison de dictionnaires et de listes
Pour comparer deux dictionnaires et deux ILists , vous pouvez assimiler respectivement leurs clés et leurs valeurs. Pour les ILists, vous pouvez utiliser SequenceEqual pour comparer directement leur contenu. Pour les dictionnaires, vous pouvez les convertir en listes de paires clé-valeur et utiliser SequenceEqual pour vérifier l'égalité.
Exemple d'utilisation
En supposant que vous ayez un dictionnaire nommé " dict1" et une liste nommée "list1", et vous souhaitez les comparer à un autre dictionnaire "dict2" et une liste "list2":
// Convert Dictionaries to lists of key-value pairs var dict1List = dict1.Select(x => new KeyValuePair<string, int>(x.Key, x.Value)).ToList(); var dict2List = dict2.Select(x => new KeyValuePair<string, int>(x.Key, x.Value)).ToList(); // Compare the lists of key-value pairs using SequenceEqual bool dictEqual = dict1List.SequenceEqual(dict2List); // Compare the ILists directly using SequenceEqual bool listEqual = list1.SequenceEqual(list2);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!