我有2个表像下:合并两个列表成为一个
var selectedItems = _uow.ProductItems.Get(w => w.ProductId == productid).Select(projection => new
{
ProductId = projection.ProductId,
ProductItemId = projection.ProductItemId,
ProductItemTypeId = projection.ProductItemTypeId,
ProductItemName = GetItemName(projection),
ProductItemType = projection.ItemType,
Amount = projection.Amount
});
var services = _uow.Services.GetAll().Select(projection => new {
ProductId = 0,
ProductItemId = 0,
ProductItemTypeId = projection.ServiceId,
ProductItemName = projection.Name,
ProductItemType = "Service",
Amount = projection.DefaultAmount
});
我希望能够将它们合并到使用我的自定义逻辑使用Linq
一个列表,它是保持只有ProductItemTypeId
对象匹配ProductId
或ProductItemId
是不是0
。我已经实现了这一点,但使用foreach
象下面这样:
List<dynamic> productItems = new List<dynamic>();
foreach (var item in services)
{
if (item.ProductItemTypeId == selectedItems.Select(s => s.ProductItemTypeId).FirstOrDefault())
{
productItems.Add(selectedItems.Where(w => w.ProductItemTypeId == item.ProductItemTypeId).FirstOrDefault());
}
else
{
productItems.Add(item);
}
}
我会很感激,如果任何人都可以建议我怎么能在Linq
写上面的逻辑,这样我的代码更简洁。
只是在黑暗中拍摄,也许你可以试试[联盟](http://msdn.microsoft.com/en-us/library/bb341731%28v=vs.110%29.aspx) – jacqijvv
检查这出:http://stackoverflow.com/questions/21951459/merge-two-or-more-list-according-to-order/21951484#21951484 –
@Noobacode感谢您的评论,但请参阅我的评论下面的'邮编' – lbrahim