IF + List<STRING> w C#


(Jarek P) #1

Witam.

Wyobraźcie sobie skrypt, który usuwa wszystkie wulgaryzmy z tekstu... I posiada liste typu string z przekleństwami. I teraz jak to podczepić pod if'a ?

Z góry dziękuje za pomoc.


([alex]) #2

if(lista.Contains(Slowo))


(Jarek P) #3

A czy to przypadkiem nie sprawdza czy na danej liście jest słowo ? Mi chodzi o coś takiego:

Jest lista, na której są 2 słowa . Można to zapisać tak if(słowo1=="??"&&słowo2=="??") Ale mi chodzi o sprawdzenie wszystkich słów z listy.


(Tomek Matz) #4

Jeśli chciałbyś przefiltrować ten tekst to można to zrobić np. tak (być może użyte tutaj wyrażenie regularne da się zapisać prościej):

List list = new List();

list.Add("łacina 2"); // ciągi znaków składające się z dwóch i więcej słów muszą być dodane na początku

list.Add("łacina");


string exp = "";

for (int i = 0; i < list.Count; i++)

{

    for (int j = 0; j < list[i].Length; j++)

    {

        exp += list[i][j].ToString();

        if (j != list[i].Length - 1)

            exp += "[\\s\\t]*";

    }

    if (i != list.Count - 1)

        exp += "|";

}


string text = "Jakiś interesujący tekst zawierający Ł aci N a.\nDalsza część interesującego (łacina) tekstu łacina 2.\n\nKONIEC Ł A C I N A";

text = System.Text.RegularExpressions.Regex.Replace(text, exp, "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

Pytanie na ile pełną masz tą listę przekleństw. No i pytanie jakich sposobów na zapisanie przekleństwa nie rozpatruje ten kod.


(Jarek P) #5

To z przekleństwami to był przykład. Chodzi mi o filtrowanie nazwy procesów . O zapis, no coś na zasadzie:

if(to == czemukolwiek_z_listy)


(Tomek Matz) #6

No to w takim bądź razie nie do końca rozumiem, co chcesz zrobić (ten Twój przykład całkowicie mnie zbił z tropu). Ten kod, który podał [alex] (metoda Contains) służy do takiego sprawdzenia.


(Jarek P) #7

Dobra rozwiązane. Dzięki wam. :smiley: