Entwickler-Ecke

Basistechnologien - Liste nach doppelten Wörtern durchsuchen


Amkoo1 - Fr 29.04.16 10:39
Titel: Liste nach doppelten Wörtern durchsuchen
Wie schreibe ich eine Methode, welche eine Liste nach doppelten Wörtern untersucht und diese wörter dann ausgibt. Vielen Dank für eure Hilfe. Komme wirklich nicht weiter.

Moderiert von user profile iconTh69: Titel geändert ("HILFE !!!" entfernt)


FinnO - Fr 29.04.16 10:58

Moin,

was hast du denn bisher schon gemacht?

Gruß


erfahrener Neuling - Fr 29.04.16 11:01

Hallo und :welcome:

Hier eine mögliche Lösung


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
public List<string> SearchDoubleWords(List<string> myList)
{
    List<string> wordList = new List<string>();
    List<string> doubleWordList = new List<string>();
    //alle Wörter deiner Liste abfragen
    foreach (string word in myList)
    {
        if (wordList.Contains(word))
        {
            //das Wort kommt in wordList vor, ist also doppelt
            if (!doubleWordList.Contains(word))
                //wird nur hinzugefügt, wenn es noch nicht auf der Doppelten-Liste steht
                doubleWordList.Add(word);
        }
        else
            //das Wort wird der wordList hinzugefügt, kommt also zum 1. Mal vor (nicht doppelt)
            wordList.Add(word);
    }
    //gibt die Liste zurück, mit der du dann arbeiten kannst
    return doubleWordList;
}


EDIT: Ich hoffe, dir jetzt nicht das Vergnügen am Selbst-Ausprobieren genommen zu haben. Dachte, dass hilft dir vielleicht beim verstehen.


C# - Fr 29.04.16 11:08

Falls du einen Einzeiler bevorzugst:

C#-Quelltext
1:
List<string> doppelteWörter = alleWörter.Where(s => alleWörter.Count(a => a == s) > 1).Distinct().ToList();                    


PS:
Falls du deine Wörter ohne doppelte Vorkommen möchtest:

C#-Quelltext
1:
List<string> einfacheWörter = alleWörter.Distinct().ToList();