2013-05-02 2 views
-7

J'ai une liste (environ 18000 articles) de chaînes, bien je dois trouver la même sous-chaîne dans cette liste. Bellow est un exemple: Liste exemple: "test1" "test 2" "est 2" "west1"Rechercher les mêmes sous-chaînes dans une liste de chaînes

bien que je dois ce résultat:

"test" - 2

"est" - 4

"EST1" - 2

"est 2" - 2

bien j'en ai besoin en utilisant linq pour faire des recherches rapides (si possible). Merci à l'avance

+1

LINQ fera pas nécessairement l'opération rapide. LINQ est compilé dans les boucles for appropriées de toute façon ... – MoonKnight

+0

Vous trouverez des gens plus disposés à aider si vous montrez [ce que vous avez essayé jusqu'à présent] (http://www.whathaveyoutried.com). – anaximander

+0

Je pense que toute solution pour * toutes * les chaînes (comme dans votre exemple) est susceptible d'être O (N^2), donc ça ne va pas être extrêmement rapide. La vérification de chaque chaîne individuelle sera O (N). Juste pour confirmer: Si nous ajoutons à votre liste de chaînes d'échantillons la chaîne "e", est-ce que le nombre compterait pour 5? (Parce que c'est dans "e", "test", "est", "est1" et "est 2") –

Répondre

4

Je suppose que c'est ce que vous voulez:

var listWithSubstring = originalList.Where(i => i.Contains("est")); 
+0

peut-être .Count suffirait mais cela couvrira également – WhileTrueSleep

+0

Eh bien, Je ne suis pas vraiment sûr de ce que veut @SergiuCojocaru, mais cela devrait suffire. Bien que vous ayez raison, je pourrais mentionner '.Count' /' .Count() 'dans ma réponse. – Zbigniew

+0

bien chaîne peut ou peut ne pas contenir est. J'ai besoin de trouver toutes les sous-chaînes similaires. Par exemple si dans la liste ci-dessus je vais ajouter "home" et "présage", l'algorithme devra montrer les résultats précédents + ome -2. Donc, en fait, je ne connais pas la liste initiale à l'étape du codage. –

Questions connexes