public class Mailing
{
public string To { get; set; }
public string AttachmentPath { get; set; }
public int AttachmentCount { get; set; }
}
给出这种结构我有一个IList<Mailing> mailingList
,其中To
有重复,而AttachmentPath
每个都是唯一的。
我需要向mailingList发送电子邮件,其中每个唯一To
都有多个附件(即AttachmentPath
s)。
这部分有效 - 我可以获得附件计数并迭代并添加附件,但我觉得这很难看。我还需要为每组附件限制一封电子邮件,以下内容完全中断。
var investorMailings = (from m in mailingList
group m by new
{
m.GroupBy,
m.To
}
into g
select new DistintInvestorMailing
{
To = g.Key.To,
AttachmentCount = g.Count()
}).ToList();
任何想法?
答案 0 :(得分:2)
var groupedMailings = mailingList.GroupBy(g => g.To);
var investorMailings = groupedMailings.Select(
g => new
{
To = g.Key,
Attachments = g.Select(k => k.AttachmentPath),
Count = g.Sum(j => j.AttachmentCount)
}
);
应生成具有以下属性的IEnumerable匿名类型:
注意:是的,这可以变成1个linq语句,但为了清晰起见,我将其分为两个