-2
votes

comparer deux listes de chaîne et si l'un de l'élément correspondant à un certain traitement

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. xxx


4 commentaires

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))


@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


Dupliqué possible de Toute intersection de deux collections


5 Réponses :


4
votes

Vous pouvez utiliser la méthode tout pour ceci: xxx

Vous pouvez désormais faire un bloc conditionnel sur le matchfound s'il renvoie < Code> true Vous pouvez traiter ce qui est nécessaire.

Si vous souhaitez faire une comparaison insensible aux cas, vous devrez utiliser string.equals et peut spécifier si L'affaire n'a pas d'importance pour les comaparines.


5 commentaires

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



0
votes

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;


0 commentaires

1
votes

Vous pouvez vérifier avec intersect et tout xxx

par exemple, xxx

sortie true xxx

sortie false


0 commentaires

3
votes

Vous pouvez utiliser intersect code> pour trouver des éléments courants: xxx pré>

si vous voulez juste savoir s'il y a des éléments communs append . / Code>: P>

foreach(var commonElement in intersecting)
{
    // do something ...
}


2 commentaires

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.



1
votes

Vous devez prendre tous ces éléments qui correspondent à la fois de la liste, puis le code si la correspondance figurant comme xxx

dans le code ci-dessus foreach itérer quand Article présent dans les deux liste.

sortie:

 Entrez la description de l'image ici


0 commentaires