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()})