La comparaison d'une chaîne avec différentes chaînes de caractères
Je veux comparer une chaîne avec de nombreuses chaînes. Comment est-ce fait en C#?
OK, après la lecture de cette question à plusieurs reprises et également deepasundaris propre réponse avec des infos supplémentaires, je pense qu'il veut le suivant: j'ai une liste de plusieurs chaînes et ont besoin de trouver un inconnu sous-chaîne qui réside dans chaque chaîne à l'intérieur de la liste
veuillez reformuler la question afin de refléter ce que vous avez réellement dire.
Pouvez-vous s'il vous plaît modifier votre question initiale à fournir un peu plus d'informations? J'ai remarqué que vous avez clarifié le problème dans certains de vos commentaires ici, mais la meilleure façon serait de mettre à jour la question elle-même, de sorte que les gens n'ont pas de creuser à travers toutes les réponses à comprendre ce dont vous avez besoin.
Aussi, ce doit être marqué comme indépendant de la langue
Vous vraiment faut arrêter de re-poster cette question. Si quelque chose n'est pas clair, merci d'éditer cette question afin de clarifier ce que vous voulez dire.
veuillez reformuler la question afin de refléter ce que vous avez réellement dire.
Pouvez-vous s'il vous plaît modifier votre question initiale à fournir un peu plus d'informations? J'ai remarqué que vous avez clarifié le problème dans certains de vos commentaires ici, mais la meilleure façon serait de mettre à jour la question elle-même, de sorte que les gens n'ont pas de creuser à travers toutes les réponses à comprendre ce dont vous avez besoin.
Aussi, ce doit être marqué comme indépendant de la langue
Vous vraiment faut arrêter de re-poster cette question. Si quelque chose n'est pas clair, merci d'éditer cette question afin de clarifier ce que vous voulez dire.
OriginalL'auteur user251334 | 2010-01-15
Vous devez vous connecter pour publier un commentaire.
Si vous voulez vérifier si une chaîne est contenue dans une liste de chaînes, vous pouvez utiliser le
Contient
méthode d'extension:OriginalL'auteur Darin Dimitrov
Je recommande que vous regardez cette wikipedia l'article sur le plus longue sous-chaîne commune de problème.
Je me souviens de premier cycle qu'une stratégie pour trouver la plus longue sous-chaîne commune, vous pouvez commencer par trouver un peu plus courte chaîne et puis développez à partir de là (et répétition). C'est, si "abcd" est une sous-chaîne commune, il en est de "abc", ainsi que "ab".
Ce prête à une répétition de l'algorithme où vous devez d'abord trouver toutes les 2 paires de lettres qui apparaissent dans vos cordes (je ne suis pas embêter avec une lettre de sous-chaînes, parce que pour le grand jeu de données qu'ils vont recevoir l'ensemble de l'alphabet). Ensuite, vous parcourez à nouveau pour trouver toutes les 3-lettres des sous-chaînes, et ainsi de suite ...
OriginalL'auteur Yoni
De comparer toutes les chaînes dans une collection à l'autre pour trouver les doublons, il est plus efficace d'utiliser un Dictionnaire:
De sortie:
Vous pouvez aussi le faire en utilisant des méthodes LINQ:
Si vous savez exactement l'intention de l'OP, s'il vous plaît poster quelque part sur cette question.
OriginalL'auteur Guffa
meh. @ash: cela fait 4 ans depuis LINQ libéré.
OriginalL'auteur Esteban Araya
Si vous voulez comparer, utiliser Chaîne de caractères.Comparer.
Si vous rechercher une chaîne dans une liste, utilisez le Contient/Sélectionnez la méthode de l'équivalent de la liste type.
OriginalL'auteur
J'aime utiliser les Chaîne de caractères.Comparer() méthode statique car elle vous permet de tout rendre explicite. Ceci est important, car les comparaisons de chaînes peuvent être notoire de bogues subtils.
Par exemple:
Si vous voulez juste savoir si une chaîne est une chaîne à une autre chaîne plus longue, au-dessus de la boucle, vous pouvez utiliser:
Noter que IndexOf accepte le même utile StringComparison énumération.
OriginalL'auteur Ash
Pour trouver les chaînes de votre liste, qui sont dans la liste plusieurs fois, vous pourriez commencer à mettre les chaînes dans un HashSet, et de vérifier pour chacun d'eux, si il est déjà en cet ensemble.
Par exemple, vous pouvez:
OriginalL'auteur treaschf