속으로 두 목록을 병합 :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
를 사용하지만이를 달성했다 : 사람이 내 코드를보다 간결 너무 Linq
에 위의 논리를 작성하는 방법을 제안 할 수 있다면 정말 감사하겠습니다
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);
}
}
.
그냥 어둠 속에서, 어쩌면 당신은 시도 할 수 있습니다 [연합] (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