我想用linq在一行中重写下面的代码。有可能吗?

var to = new MailAddressCollection();

foreach(string recipient in recipients)
{
    to.Add(new MailAddress(recipient));
}

以下是比较理想的。在写入时,它返回多个mailaddresscollections:
var to = recipients.Select(r => new MailAddressCollection() {new MailAddress(r)});

注意,这些是框架类,所以我不能重写mailaddresscollection以包含构造函数参数。

最佳答案

MailAddressCollection没有接受收件人列表的构造函数。如果你真的想一行一行的话,你可以写下:

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

关于c# - 我可以在LINQ中使用集合初始值设定项来返回完全填充的集合吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6212413/

10-08 23:14