Я работаю над приложением WPF, и в какой-то момент мне нужно получить / показать все дубликаты из списка строк.(С именем дублированных строк и количеством этих строк в списке). Пример: «Список содержит строку« Hello »3 раза».До сих пор я получаю имя строки успешно, но мне не удается получить правильное количество раз, которое она представлена в списке.Это мой код:
List<String> answerData = new List<String>();
using (MySqlCommand command = new MySqlCommand(query2, conn))
{
using (MySqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
answerData.Add(reader.GetString(0));
}
}
}
var duplicates = answerData
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var d in duplicates)
{
MessageBox.Show(""+ d + duplicates.Count().ToString()); //Here I tried to get the number
//with Count() but it doesn't work as I thought it would.
}
Что я должен добавить / изменить, чтобы получить желаемый результат?
РЕДАКТИРОВАТЬ
Как предложено, мой код изменился на следующее:
var duplicates = answerData
.GroupBy(i => i)
.Where(g => g.Count() > 1);
foreach (var d in duplicates)
{
MessageBox.Show(d.Key + " " + d.Count().ToString());
}
И теперь все работает гладко.Спасибо всем!