Member 12255871 Ответов: 1

Найдите дубликаты среди первых строковых элементов в массиве строк


I have an arry of strings:

string[] originText =  { "Lorem ipsum dolor.",  "Quisque at massa non erat.",  "Donec auctor blandit nibh.",  "Donec tincidunt." };


Is there any way to:

1. Get  only the  first string elements and  cast them into a separate  string[] firstElem { "Lorem", "Quisque", "Donec", "Donec"}.
   
2. Compare them  and cast the result into  string[] duplicates (or dictionary) so :
 
Donec - 2 times
Lorem -  1 time
Quisque - 1 time  


Thank you 


Что я уже пробовал:

С помощью
originText = originText.Where((item, index) => index == 0).ToArray();

Я могу получить только всю первую строку, но не первый элемент каждой строки.
Я слишком новичок в C#.

1 Ответов

Рейтинг:
10

Karthik_Mahalingam

пробовать

string[] originText = { "Lorem ipsum dolor.", "Quisque at massa non erat.", "Donec auctor blandit nibh.", "Donec tincidunt." };
          var temp = originText.Select(k => k.Split(' ')[0]).GroupBy(k => k);
          Dictionary<string, int> dictCount = new Dictionary<string, int>();
          foreach (var item in temp)
              dictCount.Add(item.Key, item.Count());


Member 12255871

Блестяще! Спасибо.

Karthik_Mahalingam

добро пожаловать

BillWoodruff

Интересно, как вы использовали ' GroupBy +5

Вы можете легко создать словарь из ' GroupBy:

ВАР темп = originText.Выберите(к =&ГТ; к. Сплит(' ')[0]).Метод groupBy(к =&ГТ; к)
.ToDictionary(КВП =&ГТ; КВП.Ключ, КВП =&ГТ; КВП.Рассчитывать());

Graeme_Grant

Умный ;)

Karthik_Mahalingam

да просто и аккуратно

Graeme_Grant

+5

Karthik_Mahalingam

Спасибо Грэм