Попробуй это:
var domains = emails.Select(email => email.Split('@')[1]).Distinct().ToList();
Скажем, например, у меня есть список писем вроде:
a@domain.com
b@domain.com
c@domain.com
d@sub.domain2.com
g@sub.domain2.com
x@gmail.com
y@analytics.gmail.com
z@yahoo.com
Я хочу получить часть после @
и только получить ее один раз (уникальный).
То, что я пробовал до сих пор:
string[] campusCup(string[] emails)
{
var hs = new HashSet<string>();
var emailList = emails.Select(x => new { domain = x.Split('@')[1] })
.Where(x => hs.Add(x.domain) && Write(x.domain));
return hs.ToArray();
}
мое решение, похоже, ничего не выбирает, когда я пытаюсь его отладить.
Попробуй это:
var domains = emails.Select(email => email.Split('@')[1]).Distinct().ToList();