Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在对象列表中使用_C#_Linq_Linq To Entities - Fatal编程技术网

C# 在对象列表中使用

C# 在对象列表中使用,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,我试图在对象内的列表上使用LINQ。我会尽力解释: 我有一个叫做“评论”的东西。 在comment对象中,我有一个“User”对象列表,其中每个User对象都有一个“ID”字段 比如 Public class Comment { List<User> users; ... } 公共类注释{ 列出用户名单; ... } 然后,我得到一个用户ID列表(我们称之为UsersList,比如UsersList是一个list对象),并希望获得所有注释,其中UsersList中的所有用户都在该

我试图在对象内的列表上使用LINQ。我会尽力解释:

我有一个叫做“评论”的东西。 在comment对象中,我有一个“User”对象列表,其中每个User对象都有一个“ID”字段

比如

Public class Comment {
List<User> users;
...
}
公共类注释{
列出用户名单;
...
}
然后,我得到一个用户ID列表(我们称之为UsersList,比如UsersList是一个list对象),并希望获得所有注释,其中UsersList中的所有用户都在该注释的“users”列表中

因此,如果
UsersList={1,2}
我想得到所有注释,其中id为1的用户和id为2的用户将出现在“用户”列表中

如何做到这一点

谢谢

就这么简单:

comments.Where(c => usersList.All(id => c.users.Any(user => user.Id == id)));
comments.Where(c => UsersList.All(uId => c.users.Contains(u => u.Id == uId)));
就这么简单:

comments.Where(c => UsersList.All(uId => c.users.Contains(u => u.Id == uId)));

以另一种方式查询它,即不询问“listOfIds中的userId”,而是询问“listOfIds.Contains(userId)”


以另一种方式查询它,即不询问“listOfIds中的userId”,而是询问“listOfIds.Contains(userId)”


我认为这是不对的。注释对象没有UserId属性。它有一个用户列表,其中每个用户都有UserId属性。我认为这是不对的。注释对象没有UserId属性。它有一个用户列表,其中每个用户都有UserId属性。这是有效的,但仅当其中一个UserId存在时给出,而不是同时给出两者。但这仍然是一个好的开始:)谢谢,我用
All
交换了
Any
。好吧,它仍然不起作用-如果你计算出逻辑,你会看到它实际上做的是在用户列表相同的地方查找注释。i、 e-c.users与UsersList完全相同。仍然在解决它:)好吧,不完全是:)如果c.users包含的用户比UsersList中的多,它将不会返回它。但是如果它只包含UsersList的一部分,它将返回它。我再次更改了我的答案,现在基本上得到了与JotaBe相同的答案。我返回所有评论,其中id列表的所有用户都出现在评论的用户列表中。然而,评论列表中可能有更多的用户。这是可行的,但只在其中一个用户ID存在时给出,而不是同时给出两个用户ID。但这仍然是一个好的开始:)谢谢,我用
All
交换了
Any
。好吧,它仍然不起作用-如果你计算出逻辑,你会看到它实际上做的是在用户列表相同的地方查找注释。i、 e-c.users与UsersList完全相同。仍然在解决它:)好吧,不完全是:)如果c.users包含的用户比UsersList中的多,它将不会返回它。但是如果它只包含UsersList的一部分,它将返回它。我再次更改了我的答案,现在基本上得到了与JotaBe相同的答案。我返回所有评论,其中id列表的所有用户都出现在评论的用户列表中。然而,该评论的列表中可能有更多用户。