我有兩個模型:
public class Payment
{
public Guid UserId {get;set;}
public string UserName {get;set;}
public string AddressLine1 {get;set;}
public string AddressLine2 {get;set;}
public decimal Amount{get;set;}
}
public class User
{
public Guid Id {get;set;}
public string Name {get;set;}
public string PhoneNumber {get;set;}
}
在業務邏輯中,我正在做一些事情并接收兩個物件:
List<User> users和List<Payment> payments。UserName屬性中的一件事payments是空的,我需要通過加入兩個串列來填充它(user.Id==payment.UserId)。
如何加入兩個串列并收到List<Payment> payments已填充的串列UserName?
uj5u.com熱心網友回復:
有很多方法可以使用:
解決方案 1:payments加入users.
payments = (from a in payments
join b in users on a.UserId equals b.Id
select new Payment
{
UserId = a.UserId,
UserName = b.Name,
AddressLine1 = a.AddressLine1,
AddressLine2 = a.AddressLine2,
Amount = a.Amount
})
.ToList();
或者
payments = payments.Join(users,
payment => payment.UserId,
user => user.Id,
(payment, user) => new Payment
{
UserId = payment.UserId,
UserName = user.Name,
AddressLine1 = payment.AddressLine1,
AddressLine2 = payment.AddressLine2,
Amount = payment.Amount
}
);
解決方案 2:迭代payments并查詢user.
using System.Linq;
foreach (var payment in payments)
{
var user = users.Single(x => x.Id == payment.UserId);
payment.UserName = user.Name;
}
uj5u.com熱心網友回復:
用這個 :
var query = from payment in Payment
join user in User
on payment.UserId equals user.Id
select new
{
payment.UserId,
payment.serName,
payment.AddressLine1,
payment.AddressLine2,
payment.Amount,
user.Name,
user.PhoneNumber
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/471243.html
上一篇:使用串列框SelectedItems作為LINQ引數
下一篇:多重平均值和總和
