C# 我怎样才能找到电子邮件地址?C
样本数据: 这是我的代码:C# 我怎样才能找到电子邮件地址?C,c#,.net,linq,C#,.net,Linq,样本数据: 这是我的代码: var query = memberModels.Join(emailAddModels, member => member.Id, email => email.Id, (member, email) => new {
var query = memberModels.Join(emailAddModels,
member => member.Id,
email => email.Id,
(member, email) => new
{
member.FName,
member.LName,
member.MobileNumber,
member.LandlineNumber,
member.WorkNumber,
email.EmailAddress
});
dgReports.ItemsSource = query.ToList();
dgReports.Columns[0].Header = "First Name";
dgReports.Columns[1].Header = "Last Name";
dgReports.Columns[2].Header = "Mobile Number";
dgReports.Columns[3].Header = "Landline Number";
dgReports.Columns[4].Header = "Work Number";
dgReports.Columns[5].Header = "Email Address";
我如何与同一用户联系电子邮件地址
样本:
------------------------------------------------------------------
|juan|dela cruz|99999|12345|67890|juan@gmail.com, juan2@gmail.com |
------------------------------------------------------------------
所以我得到上面显示的输出。请提供帮助。您可以通过以下GroupJoin实现此目的:
var query = memberModels.GroupJoin(emailModels, m => m.Id, e => e.Id, (m, emailCollection) => new
{
FName= m.FName,
LName = m.LName,
MobileNumber = m.MobileNumber,
LandlineNumber = m.LandlineNumber,
WorkNumber = m.WorkNumber,
emailCollection = emailCollection
//emails = string.Join(", ", emailCollection.ToList().Select(e => e.EmailAddress) ).ToList() // you can not use string.Join directly on query, so need to do either ToList or AsEnumerable.
}).AsEnumerable().Select(a => new
{
FName = a.FName,
LName = a.LName,
MobileNumber = a.MobileNumber,
LandlineNumber = a.LandlineNumber,
WorkNumber = a.WorkNumber,
EmailAddress = string.Join(", ", a.emailCollection.Select(e => e.EmailAddress))
});
dgReports.ItemsSource = query.ToList(); // just assign query to ItemSource if dgReports.ItemSource accepts Enumerable (like dgReports.ItemSource = query)
或
改为使用Selectmeber=>new{meber stuff,…,EmailAddress=string.Join,emailAddModels.where e=>e.Id=meber.Id.Selecte=>e.EmailAddress}@Selvin我不明白。你能详细说明一下吗?哪一部分你不懂?全部。。我还不习惯林克对不起。@Selvin“e”是从哪里来的?
var query = memberModels.GroupJoin(emailModels, m => m.Id, e => e.Id, (member, emailCollection) => new
{
member, emailCollection
//FName= m.FName,
//LName = m.LName,
//MobileNumber = m.MobileNumber,
//LandlineNumber = m.LandlineNumber,
//WorkNumber = m.WorkNumber,
//emailCollection = emailCollection
//emails = string.Join(", ", emailCollection.ToList().Select(e => e.EmailAddress) ).ToList() // you can not use string.Join directly on query, so need to do either ToList or AsEnumerable.
}).AsEnumerable().Select(a => new
{
FName = a.member.FName,
LName = a.member.LName,
MobileNumber = a.member.MobileNumber,
LandlineNumber = a.member.LandlineNumber,
WorkNumber = a.member.WorkNumber,
EmailAddress = string.Join(", ", a.emailCollection.Select(e => e.EmailAddress))
});
dgReports.ItemsSource = query.ToList(); // just assign query to ItemSource if dgReports.ItemSource accepts Enumerable (like dgReports.ItemSource = query)