У меня есть два списка различных типов пользовательских объектов, и я пытаюсь выполнить внутреннее соединение, где критерии объединения содержатся в дочернем списке объектов.
Вот пример моих объектов:
public class Container
{
public List<Reference> Refs;
public Container(List<Reference> refs )
{
Refs = refs;
}
}
public class Reference
{
public int Id;
public Reference(int id )
{
Id = id;
}
}
А вот пример данных, с которыми я работаю:
List<Container> containers = new List<Container>()
{
new Container(new List<Reference>()
{
new Reference(1),
new Reference(2),
new Reference(3)
}),
new Container(new List<Reference>()
{
new Reference(4),
new Reference(5),
new Reference(6)
})
};
List<Reference> references = new List<Reference>()
{
new Reference(4),
new Reference(5),
new Reference(6)
};
Я пытаюсь выбрать все Container
в List<Container>
, которые имеют Reference
в List<Reference>
на основе Reference.Id
. С этими данными я ожидаю, что будет выбран только второй элемент в List<Container>
.
Если бы это был правильный синтаксис, я бы хотел сделать что-то вроде:
var query = from c in containers
join r in references on c.Refs.Contains( r.Id )
select c;
Как это можно сделать? Спасибо
Извините за плохой титул. Я изо всех сил стараюсь описать этот сценарий в короткой группе слов - пожалуйста, предложите изменить, если вы можете придумать что-то более подходящее. Спасибо