컬렉션의 컬렉션에있는 항목을 얻을 수있는 멋진 간단한 LINQ 쿼리를 찾고 있습니다.LINQ : 단일 개체에 대한 컬렉션 내의 컬렉션 검색
List<Customer> Customers;
는 내가 원하는 것은의 ID를 기반으로 단일 주문입니다 ...
class Customer
{
List<Order> Orders;
int ID;
}
class Order
{
int ID;
}
내가 형 고객의 목록을 가지고 말할 수 있습니다 ... 다음 모델을 고려 주문 (이것은 내가 알고있는 입력 데이터 임). 나는 또한 주문 고객에게 고유 한 것으로 가정 할 수있다 (그래서 단지 내가 모든 고객에 걸쳐 찾고 있어요 ID가 하나 개의 주문이있을 것이다)
나는 주문을 얻을하는 데 사용할 수있는 좋은 LINQ 쿼리가 있습니까 내가 찾고 있어요?
나는 하나의 주문 목록을 통해이를 쉽게 수행 할 수 있지만이 설정은 내가해야하는 설정입니다. 나는 내가 필요한 것을 얻기 위해 이미 충분한 메모리를 가지고 있다면, 더 많은 데이터를 요구하고 싶지는 않다.
나는 반쯤 지저분한 for 루프로 이것을 할 수있다. 아마 내가해야 할 것 같은데? 어쩌면 코드를 너무 단순화하려고 노력 중입니까? ,이 답변의 이전 버전에서와 마찬가지로
var matchingOrders = from customer in customers
from order in customer.Orders
where order.ID == orderID
select order;
var order = matchingOrders.Single();
이러한 일치 또는 하나 이상이없는 경우이 실패합니다 참고 :
입니다. 고객이 아닌 주문 상품을 원합니다. 네가 내 질문을 제대로 읽지 못할 정도는 아니지만 4 명의 유권자도 그걸 읽지 않니? 좋은 하루가 아니야 – musefan
@musefan : 오소리, 오독 - 지금보세요. –
좋은 회복;)'SelectMany'는 제가 찾고 있던 것이고, 그것이 존재한다는 것을 깨닫지 못했습니다. 저와 함께 작업 할 수있는 연결 모음을 제공하므로 저도 좋아합니다. 쿼리 식의 팬이 아닙니다. 저에게 충분한 코드가 아닙니다. – musefan