2016-09-15 2 views
0

Мне просто интересно, какой самый простой способ найти одни и те же значения? Я просто новичок, так что я ищу самый простой способ, без каких-либо векторов и т.д .. Например, мне нужно сортировать Улицы:Поиск одинаковых значений C#

  • 1street

  • 2street

  • 1street

  • 3street

, и ответ должен быть таким, что «1street» является наиболее часто называемым здесь.

+0

Имейте выглядеть так: http://stackoverflow.com/a/9909544/6729295 –

+0

В заголовке, Вы запрашивая поиск того же значения, и в вашем вопросе вы запрашиваете сортировку –

ответ

0

Предполагая, что у вас есть List<string>, который содержит ваши детали:

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

Если вы просто хотите, чтобы отсортировать список, вы можете использовать List.Sort:

myList.Sort(); 

Затем можно перейти через список цикл для подсчета дубликатов и определения наиболее частого.

Или вы можете группировать элементы, а затем сортировать группировку по счету, по убыванию и перенести первый элемент.

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

А потом mostCommon.Key покажет вам самый общий элемент, и mostCommon.Count() покажет вам, сколько элементов есть.

Или, если вы хотите список {name, count}, упорядоченный по количеству:

var groupedAndSorted = 
    myList.GroupBy(x => x) 
      .Select(x => new {Key=x.Key, Count=x.Count()}) 
      .OrderByDescending(x => x.Count) 
      .ToList(); 
Смежные вопросы