Devo controllare se una stringa contiene parole parolacce.C# - Il modo più veloce per trovare uno dei set di stringhe in un'altra stringa
seguito qualche consiglio da un'altra domanda qui, ho fatto un HashSet contenente le parole:
HashSet<string> swearWords = new HashSet<string>() { "word_one", "word_two", "etc" };
Ora ho bisogno di vedere se uno dei valori contenuti nel swearWords
sono nella mia stringa.
ho visto fare il contrario, ad esempio:
swearWords.Contains(myString)
Ma questo restituisce false.
Qual è il modo più veloce per verificare se una delle parole nell'Hashset è in myString
?
NB: Immagino di poter utilizzare un ciclo di foreach per controllare ogni parola a turno, e interrompere se viene trovata una corrispondenza, mi chiedo solo se c'è un modo più veloce.
Perché sei usando un 'HashSet'? Potrebbe essere più facile usare 'Lista qui. E poi dividi 'myString' in una lista e fai il confronto necessario. –
SkonJeet
@SkonJeet: se l'elenco delle parolacce è grande, il controllo del contenimento sarà più veloce per un 'HashSet' di un' Elenco' - e non riesco a vedere che un 'Elenco' lo renderebbe * più * *. –
Inizialmente utilizzavo un elenco e poi lo convertivo in un HashSet mentre leggevo che sono più veloci per controllare i valori in – surfitscrollit