首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq分组查询

Linq分组查询
EN

Stack Overflow用户
提问于 2010-04-20 03:13:40
回答 1查看 102关注 0票数 1
代码语言:javascript
复制
public class Mailing
{
    public string To { get; set; }
    public string AttachmentPath { get; set; }
    public int AttachmentCount { get; set; }
}

根据这种结构,我有一个IList<Mailing> mailingList,其中To具有dups,并且AttachmentPath对于每个To是唯一的。

我需要发送电子邮件到每个唯一的To有多个附件(即AttachmentPath)的mailingList。

这在一定程度上是可行的--我可以获得附件计数,并根据需要迭代和添加附件,但我认为这很难看。我还需要限制每组附件中的一个电子邮件,其中完全打破了以下内容。

代码语言:javascript
复制
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();

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-20 03:38:10

代码语言:javascript
复制
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:

  • .To要向to
  • .Count发送要引用AttachmentPath's

的字符串的IEnumerable的附件数的地址

注意:是的,可以将其转换为1条linq语句,但为了清楚起见,我将其拆分为两条

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2670091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档