簡體   English   中英

Linq:選擇列表包含必須位於另一個列表中的屬性的對象

[英]Linq: select objects where list contains properties that must be in another list

我已經閱讀了許多使用linq和列表的解決方案,但我似乎找不到解決我的問題的方法。 我已經描述了下面的情況。 詳細信息列表包括系統中的每個詳細信息。

List<Detail> allDetails

Detail
    List<Program> programs

Program
    int ID
    int code

我有一個特定角色可以訪問的程序ID列表。

int[] specificPrograms

要求是我需要從allDetails返回一個Details列表,其中allDetails中Detail的程序列表必須全部包含在specificPrograms列表中。

例如:如果有2個詳細信息包含以下程序

Detail 1
Programs   ID        Code
---------------------------------
           1         111
           2         222
           3         333
           4         444

Detail 2
Programs   ID        Code
---------------------------------
           1         111
           3         333 

SpecificPrograms contains IDs: 1, 3, 4

僅返回詳細信息2,因為每個詳細信息中的程序必須存在於specificPrograms列表中。

var result = allDetails.Where(detail => detail
                 .programs.All(x => SpecificPrograms.Contains(x.ID)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM