var email_domains = new List<string>()
{
"gmail.com",
"gmail.com",
"outlook.com",
"outlook.com",
"outlook.com",
"outlook.com",
"ineria.pl",
"mail.ru"
};
var results = email_domains.GroupBy(x => x);
foreach (var domain in results)
{
Console.WriteLine("{0} [{1}]", domain.Key, domain.Count());
}
Вместо Console.WriteLine()
вы можете записать в файл.
Если вы хотите, чтобы элементы имели хотя бы один дубликат, добавьте дополнительное условие:
foreach (var domain in email_domains.GroupBy(x => x).Where(x => x.Count() > 1))
{
Console.WriteLine("{0} [{1}]", domain.Key, domain.Count());
}