Intereting Posts
C # LINQ Query – Group By Печать форм на нескольких страницах specflow отключен, SpecflowPackagePackage неправильно загружен Как создать реальные объекты с помощью поведения (методов) в PowerShell? «Не удалось загрузить файл или сборку System.Drawing или одну из его зависимостей». Ошибка на .Net 2.0, VS2010 и Windows 8 C # HttpWebRequest Подключенное соединение было закрыто: произошла непредвиденная ошибка при отправке обновить элемент управления в пользовательском интерфейсе с запущенным фоном Thread in Winforms Установка тайм-аута отправки / приема сокетов до менее 500 мс в .NET. C # Listbox set selected item Как конвертировать JSON в classы C #? Объединить MyDbContext с Asp.net IdentityDbContext Nullable : и перегруженные операторы, bool? & bool Помещение сообщения в Websphere MQ через C # имеет разную длину данных, чем ручное размещение одного и того же сообщения Инъекция зависимостей Unity с атрибутом фильтра глобальных веб-API Каковы наиболее используемые интерфейсы в C #?

Список запросов Linq содержит список

У меня 2 classа:

public class ObjectA { public int Id; public string Name; } public class ObjectB { public int Id; public string Name; public List ListOfObjectA; } 

Поэтому у меня есть два списка: один из ObjectB (ListObjectB) и другой содержит список идентификаторов объекта ObjectA (называемый ListOfIdsA). Если это, я хочу получить список ObjectB, где ObjectB.ListOfObjectA находится в ListOfIdsA.

Мой первый (и неправильный) подход был

 ListObjectB.Where(p=> ListOfIdsA.Contains(p.ListOfObjectA.Select(b=>b.Id))) 

Но это явно исключает. Я google это, stackoverflowed, но я думаю, что мои навыки поиска не так хорошо в этом, может кто-нибудь дать ниндзя awser этого? (Предпочтительно в lambda-expressии)

Вы пытаетесь получить список ObjectB, где все объекты ObjectAs находятся в ListOfIdsA или в любом из них?

Я думаю, вы тоже хотите:

 ListObjectB.Where(p => p.ListOfObjectA.Any(x => ListOfIdsA.Contains(x.Id))) 

или же

 ListObjectB.Where(p => p.ListOfObjectA.All(x => ListOfIdsA.Contains(x.Id))) 

(Возможно, вы хотите сделать ListOfIdsA HashSet если он имеет значительный размер, кстати.)