例如,我有一个电子邮件列表,例如:
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();
}
当我尝试调试它时,我的解决方案似乎没有选择任何东西。
答案 0 :(得分:6)
尝试一下:
var domains = emails.Select(email => email.Split('@')[1]).Distinct().ToList();