MailMessage Bcc AddRange的扩展方法

Dav*_*ave 2 c# extension-methods system.net.mail

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

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

Luk*_*oid 5

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);
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用它:

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


Cat*_* M. 5

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

只需使用逗号字符(",")分隔的多个电子邮件地址调用Add方法即可.

检查一下:

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