J'ai deux listes de chaîne. Je souhaite comparer chaque élément dans une liste avec une autre et si au moins l'un d'entre eux correspondent, alors faire un certain traitement, ne faites rien.
Je ne sais pas comment faire. J'ai les listes suivantes et le code que j'ai utilisé était séquenceequal, mais ma tête a dit que c'est faux car il se compare simplement si son égal ou non et ne fait rien. Je ne pouvais pas être en désaccord et je veux atteindre mes fonctionnalités souhaitées que j'ai mentionnées ci-dessus. S'il vous plaît aider. Comme vous l'avez l'air, l'ordre n'a pas d'importance, ici 123 est dans la liste, mais dans un ordre différent, il correspond donc et donc du traitement selon mes besoins. p>
5 Réponses :
Vous pouvez utiliser la méthode Vous pouvez désormais faire un bloc conditionnel sur le Si vous souhaitez faire une comparaison insensible aux cas, vous devrez utiliser tout code> pour ceci:
matchfound code> s'il renvoie < Code> true code> Vous pouvez traiter ce qui est nécessaire. p>
string.equals code> et peut spécifier si L'affaire n'a pas d'importance pour les comaparines. P> p>
ok merci de vous remercier. Et si une liste est vide? Ça va jeter une exception?
Qu'avez-vous dit désolé?
Si l'une de la liste est NULL, cela pourrait lancer une exception
Merci beaucoup.
Votre réponse était assez facile et utile. Dans les moments de réflexion sur l'exception, j'ai accepté une autre réponse ici où il dit aucune exception à vide. Mais je viens de réaliser que votre code peut atteindre la même chose si je fais d'abord chèque null. Mais le vôtre est un code plus lisible merci beaucoup. J'ai donné upvote
Utilisez LINQ pour trouver les correspondances; puis vérifiez la taille de la matrice résultante comme suit:
var intersect = list1.Where(el1=>list2.Any(el2=>el2==el1)); var isMatch = intersect.Count > 0;
Vous pouvez vérifier avec intersect et tout par exemple, p> sortie sortie true code> p>
false code> p> p> p>
Vous pouvez utiliser si vous voulez juste savoir s'il y a des éléments communs append intersect code> pour trouver des éléments courants:
. / Code>: P>
foreach(var commonElement in intersecting)
{
// do something ...
}
Je veux juste définir un statut s'il y a au moins une correspondance dans ces deux listes. Cela ne jette pas les exceptions de taureau si une liste est vide? Cela dépend aussi de l'ordre des articles ou non?
Aucune exception et ordre n'a pas d'importance.
Vous pouvez utiliser la liste. Intersect. Si la liste résultante est vide, alors pas de match
list1.any (x => list2.any (y => x == y)) code>
@Steve: J'en ai réellement la liste des chaînes et je convertit à la liste: p lol. Je ne sais pas mais pour fantasy lol. IDONT SAVOIR COMMENT comparer ... Mon avantage m'a conseillé d'utiliser l'index de la méthode de comparaison à l'aide de la matrice, je ne sais pas comment faire Sent Angel i>
Dupliqué possible de Toute intersection de deux collections