C# LINQ将多行折叠到列表中

C# LINQ将多行折叠到列表中,c#,linq,entity-framework,C#,Linq,Entity Framework,我有以下对象来管理分组发送电子邮件: public class GroupEmailRecipients { public string GroupName { get; set; } public List<EmailRecipient> EmailRecipients { get; set; } public GroupEmailRecipients() { EmailRecipients = new List<E

我有以下对象来管理分组发送电子邮件:

public class GroupEmailRecipients
{
     public string GroupName { get; set; }

     public List<EmailRecipient> EmailRecipients { get; set; }

     public GroupEmailRecipients()
     {
        EmailRecipients = new List<EmailRecipient>();
     }
}

public class EmailRecipient
{
    public string Email { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }
}
是否可以创建一个LINQ语句来填充GroupContacts表中的
列表

列表将填充为:

 First GroupEmailRecipients Object: 
 GroupName = "Name01"
 EmailRecipients = { Email= "john.smith@test.com", FirstName="John", 
 LastName="Smith"  } , { Email= "jane.doe@test.com",  FirstName="Jane",
 LastName = "Doe"  }

 Second GroupEmailRecipients Object: 
 GroupName = "Name02"
 EmailRecipients = { Email= "bill.smith@test.com", FirstName="Bill",
 LastName="Smith"  }
我使用的是EntityFramework 6.0,因此存根看起来像:

 List<GroupEmailRecipients> results = new List<GroupEmailRecipients>();

 using (var db = new MainContext()) 
{
     results = db.GroupContacts.[LINQ Syntax].ToList(); 
}
列表结果=新列表();
使用(var db=new MainContext())
{
results=db.GroupContacts。[LINQ语法].ToList();
}
这应该行得通

db.GroupContacts.GroupBy(r => r.Name)
                .Select(group => new GroupEmailRecipients() 
                    { GroupName = group.Key, 
                      EmailRecipients = group.Select(x => new EmailRecipient()
                          { 
                            FirstName = x.FirstName, 
                            LastName = x.LastName, 
                            Email = x.Email 
                          })
                    });
这应该行得通

db.GroupContacts.GroupBy(r => r.Name)
                .Select(group => new GroupEmailRecipients() 
                    { GroupName = group.Key, 
                      EmailRecipients = group.Select(x => new EmailRecipient()
                          { 
                            FirstName = x.FirstName, 
                            LastName = x.LastName, 
                            Email = x.Email 
                          })
                    });
这应该行得通

db.GroupContacts.GroupBy(r => r.Name)
                .Select(group => new GroupEmailRecipients() 
                    { GroupName = group.Key, 
                      EmailRecipients = group.Select(x => new EmailRecipient()
                          { 
                            FirstName = x.FirstName, 
                            LastName = x.LastName, 
                            Email = x.Email 
                          })
                    });
这应该行得通

db.GroupContacts.GroupBy(r => r.Name)
                .Select(group => new GroupEmailRecipients() 
                    { GroupName = group.Key, 
                      EmailRecipients = group.Select(x => new EmailRecipient()
                          { 
                            FirstName = x.FirstName, 
                            LastName = x.LastName, 
                            Email = x.Email 
                          })
                    });
试试这个:

var groupEmails = db.GroupContacts
            .GroupBy(x => x.GroupName)
            .Select(x => new GroupEmailRecipients
            {
                GroupName = x.Key,
                EmailRecipients = x.Select(y => new EmailRecipient
                {
                    Email = y.Email,
                    FirstName = y.FirstName,
                    LastName = y.LastName
                }).ToList()
            }).ToList();
试试这个:

var groupEmails = db.GroupContacts
            .GroupBy(x => x.GroupName)
            .Select(x => new GroupEmailRecipients
            {
                GroupName = x.Key,
                EmailRecipients = x.Select(y => new EmailRecipient
                {
                    Email = y.Email,
                    FirstName = y.FirstName,
                    LastName = y.LastName
                }).ToList()
            }).ToList();
试试这个:

var groupEmails = db.GroupContacts
            .GroupBy(x => x.GroupName)
            .Select(x => new GroupEmailRecipients
            {
                GroupName = x.Key,
                EmailRecipients = x.Select(y => new EmailRecipient
                {
                    Email = y.Email,
                    FirstName = y.FirstName,
                    LastName = y.LastName
                }).ToList()
            }).ToList();
试试这个:

var groupEmails = db.GroupContacts
            .GroupBy(x => x.GroupName)
            .Select(x => new GroupEmailRecipients
            {
                GroupName = x.Key,
                EmailRecipients = x.Select(y => new EmailRecipient
                {
                    Email = y.Email,
                    FirstName = y.FirstName,
                    LastName = y.LastName
                }).ToList()
            }).ToList();

这方面的groupby太多了

    groupContacts.GroupBy(gc=>gc.GroupName,(gn,gers)=> new GroupEmailRecipients() {GroupName=gn,EmailRecipients=gers.ToList()})

这方面的groupby太多了

    groupContacts.GroupBy(gc=>gc.GroupName,(gn,gers)=> new GroupEmailRecipients() {GroupName=gn,EmailRecipients=gers.ToList()})

这方面的groupby太多了

    groupContacts.GroupBy(gc=>gc.GroupName,(gn,gers)=> new GroupEmailRecipients() {GroupName=gn,EmailRecipients=gers.ToList()})

这方面的groupby太多了

    groupContacts.GroupBy(gc=>gc.GroupName,(gn,gers)=> new GroupEmailRecipients() {GroupName=gn,EmailRecipients=gers.ToList()})