2016-09-15 3 views
0

Ich frage mich nur, was ist der einfachste Weg, die gleichen Werte zu finden? Ich bin nur der Anfänger, so dass ich interessiere mich für die einfachste Art und Weise, ohne Vektoren und etc .. Zum Beispiel, ich brauche Straßen zu sortieren:Suche nach den gleichen Werten C#

  • 1street

  • 2Strasse

  • 1street

  • 3street

und die Antwort muss lauten, dass "1street" hier am häufigsten genannt wird.

+0

Haben Sie einen einen aussehen: http://stackoverflow.com/a/9909544/6729295 –

+0

in Ihrem Titel, Sie sind Nach demselben Wert suchen und in der Frage nach der Sortierung fragen –

Antwort

0

Vorausgesetzt Sie haben eine List<string>, dass Ihre Elemente enthält:

List<string> myList = PopulateList(...); // fill the list with names 

Wenn Sie nur die Liste sortieren möchten, können Sie List.Sort verwenden:

myList.Sort(); 

Sie könnten dann durch die Liste gehen mit eine Schleife, um die Duplikate hochzuzählen und festzustellen, welche am häufigsten vorkommen.

Oder Sie können die Elemente gruppieren und sortieren Sie dann die Gruppierung nach Anzahl, absteigend, und nehmen Sie das erste Element.

var mostCommon = 
    myList.GroupBy(x => x) 
      .OrderByDescending(g => g.Count()) 
      .First(); 

Und dann mostCommon.Key werden Sie das häufigste Element, und mostCommon.Count() werden Ihnen sagen, wie viele Elemente geben.

Oder, wenn Sie eine Liste der {name, count} wollte, von Graf bestellt:

var groupedAndSorted = 
    myList.GroupBy(x => x) 
      .Select(x => new {Key=x.Key, Count=x.Count()}) 
      .OrderByDescending(x => x.Count) 
      .ToList(); 
Verwandte Themen