반응형
LINQ Group By 및 Select 컬렉션
이 구조가 있습니다
Customer
- has many Orders
- has many OrderItems
CustomerItems
다음의 하위 집합이 주어지면 LINQ 를 통해 목록을 생성하고 싶습니다 OrderItems
.
List of new { Customer, List<OrderItem> Items }
고객이 항목의 하위 집합에서 주문한 모든 항목의 그룹입니다.
LINQ를 사용하여이 개체를 생성하기 위해 고객 별 주문 및 그룹을 역 추적하려면 어떻게해야합니까?
지금까지 나는 뭔가에있다
items
.GroupBy(i => i, i => i.Order.Customer, (i, customer) => new {customer, i})
그러나 그것은 분명히 목록이 아닙니다. 어딘가에 SelectMany가 필요하다고 생각하지만 일부 포인터로 할 수 있습니다.
나는 당신이 원하는 것 같아요 :
items.GroupBy(item => item.Order.Customer)
.Select(group => new { Customer = group.Key, Items = group.ToList() })
.ToList()
GroupBy
현재 사용중인 과부하를 계속 사용하려면 다음을 수행하십시오.
items.GroupBy(item => item.Order.Customer,
(key, group) => new { Customer = key, Items = group.ToList() })
.ToList()
...하지만 개인적으로 덜 명확합니다.
당신은 또한 이것을 좋아할 것입니다
var Grp = Model.GroupBy(item => item.Order.Customer)
.Select(group => new
{
Customer = Model.First().Customer,
CustomerId= group.Key,
Orders= group.ToList()
})
.ToList();
그룹 가입을 통해 달성 할 수 있습니다.
var result = (from c in Customers
join oi in OrderItems on c.Id equals oi.Order.Customer.Id into g
Select new { customer = c, orderItems = g});
c는 고객이고 g는 고객 주문 항목입니다.
참조 URL : https://stackoverflow.com/questions/10637760/linq-group-by-and-select-collection
반응형
'programing' 카테고리의 다른 글
Facebook 좋아요-캐시 된 버전 og : image 표시, 새로 고침하거나 다시 색인화하는 방법? (0) | 2021.01.19 |
---|---|
Windows에서 개발하는 Meteor 지원 (0) | 2021.01.19 |
ASP.NET 4.5 MVC 4가 Windows Server 2008 IIS 7에서 작동하지 않음 (0) | 2021.01.19 |
해시 배열에서 값 수집 (0) | 2021.01.19 |
vba를 사용하여 현재 작업 디렉토리를 얻는 방법은 무엇입니까? (0) | 2021.01.19 |