我可以使用LINQ的集合初始化程序来返回完全填充的集合吗?

fre*_*shr 7 c# linq

我想使用LINQ在一行中重写以下代码.可能吗?

var to = new MailAddressCollection();

foreach(string recipient in recipients)
{
    to.Add(new MailAddress(recipient));
}
Run Code Online (Sandbox Code Playgroud)

像下面这样的东西是理想的.如上所述,它返回多个MailAddressCollections:

var to = recipients.Select(r => new MailAddressCollection() {new MailAddress(r)});
Run Code Online (Sandbox Code Playgroud)

请注意,这些是框架类,因此我无法重写MailAddressCollection以包含构造函数参数.

Gro*_*ozz 5

MailAddressCollection没有接受收件人列表的构造函数。如果你真的想在一行中完成,你可以这样写:

    var to = recipients.Aggregate(new MailAddressCollection(), 
        (c, r) => { c.Add(new MailAddress(r)); return c; });
Run Code Online (Sandbox Code Playgroud)