我想按照他们的域名对电子邮件地址进行排序。 让我们举一个例子:
var list = new List<string>();
list.Add(a@hotmail.com);
list.Add(b@aon.at);
list.Add(c@gmail.com);
所以结果应该是:
b@aon.at
c@gmail.com
a@hotmail.com
可以不分割电子邮件地址吗?
答案 0 :(得分:4)
试试这个:
var sorted = list.OrderBy(x=>new MailAddress(x).Host).ToList();
它将按邮件主机
对您的电子邮件地址进行排序答案 1 :(得分:1)
你可以使用linq。但是,您必须拆分电子邮件地址:
list.OrderBy(email => email.Split('@')[1]).ToList();
答案 2 :(得分:0)
您可以使用Regex获取电子邮件的域名:
var listSorted = list.OrderBy(email => Regex.Match(email, "@.*").Value)
.ToList();
,因为:
var temp = Regex.Match("a@hotmail.com", "@.*").Value;
告诉:在@
签名后(包括@
签名)取走所有内容,以便在这种情况下temp
为@hotmail.com
。