MailMessage Bcc AddRange的扩展方法

时间:2013-02-25 13:08:28

标签: c# extension-methods system.net.mail

将多个收件人添加到MailMessage.BCC时,AddRange()没有选项。仅MailMessage.Bcc.Add();

可以通过扩展方法更改此功能吗?在这一点上我有点失落,任何指针都会非常感激。

2 个答案:

答案 0 :(得分:5)

假设您正在讨论System.Net.Mail.MailMessage类,您需要的是MailAddressCollection.Add方法(Bcc属于MailAddressCollection类型)。

只需使用逗号字符(“,”)分隔的多个电子邮件地址调用Add方法。

检查一下:

http://msdn.microsoft.com/en-us/library/ms144695(v=vs.100).aspx

答案 1 :(得分:4)

MailMessage.Bcc的类型为MailAddressCollection。这个MailAddressCollection实现了ICollection<MailAddress>。所以你可以做的是编写适用于任何AddRange的通用ICollection<T>扩展方法。

这将如下所示:

public static class CollectionExtensions
{
    public static void AddRange<T>(this ICollection<T> target, IEnumerable<T> items)
    {
        foreach(var item in items)
        {
            target.Add(item);
        }   
    }
}

然后您可以这样使用:

var address1 = new MailAddress("abc@xyz.com");
var address2 = new MailAddress("wxy@hij.com");
message.Bcc.AddRange(new[] { address1, address2 });