【发布时间】:2018-12-08 16:22:08
【问题描述】:
例如,我有一个电子邮件列表,例如:
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();
}
当我尝试调试时,我的解决方案似乎没有选择任何内容。
【问题讨论】:
-
为什么不使用 Distinct() linq 方法。 : var emailList = emails.Select(x => x.Split('@').Last()).Distinct();