0

オブジェクト内のリストで LINQ を使用しようとしています。私は説明しようとします:

「コメント」というオブジェクトがあります。コメント オブジェクトには、「ユーザー」オブジェクトのリストがあり、各ユーザー オブジェクトには「ID」フィールドがあります。

そのような

Public class Comment {
List<User> users;
...
}

次に、ユーザー ID のリストを取得し (UsersList と呼びましょう。UsersList は List< int > オブジェクトです)、UsersList 内のすべてのユーザーがそのコメントの「ユーザー」リストに含まれるすべてのコメントを取得します。

したがってUsersList = {1,2}、ID が 1 のユーザーと ID が 2 のユーザーが「users」リストに存在するすべてのコメントを取得したい場合。

これはどのように達成できますか?

ありがとう!

4

3 に答える 3

3
comments.Where(c => usersList.All(id => c.users.Any(user => user.Id == id)));
于 2012-10-29T15:13:04.483 に答える
1

逆にクエリを実行します。つまり、「userId in listOfIds」を尋ねる代わりに、「listOfIds.Contains(userId)」を尋ねます。

var query = comments
    .Where(c => UsersList.All(id => c.users.Any(u => u.ID == id)));
于 2012-10-29T15:14:11.957 に答える
0

これと同じくらい簡単です:

comments.Where(c => UsersList.All(uId => c.users.Contains(u => u.Id == uId)));
于 2012-10-29T15:13:16.563 に答える