我想用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/