3

linqとリストを使用して多くの解決策を読みましたが、問題の解決策が見つからないようです。以下に状況を説明しました。詳細のリストには、システムのすべての詳細が含まれています。

List<Detail> allDetails

Detail
    List<Program> programs

Program
    int ID
    int code

特定の役割がアクセスできるプログラムIDのリストがあります。

int[] specificPrograms

要件は、allDetailsから詳細のリストを返す必要があることです。ここで、allDetailsの詳細のプログラムのリストは、すべて特定のプログラムリストに含まれている必要があります。

例:次のプログラムを含む詳細が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のみが返されます。

4

1 に答える 1

11
var result = allDetails.Where(detail => detail
                 .programs.All(x => SpecificPrograms.Contains(x.ID)));
于 2013-03-19T16:33:27.137 に答える