我有一个附加到包含客户端的应用程序的用户列表。我希望通过Linq过滤应用程序和客户端的用户列表并正在旋转。
理想情况下,我正在使用单个语句,其中Application.Name =="示例"也在ClientApp.Id == 1。
这是我到目前为止的地方,但我有一些关于筑巢的内部大脑问题。任何帮助表示赞赏
var users2 = users.Where(x => x.App.Select(y => y.Name).Contains("example"));
public class User
{
public string FirstName { get; set; }
public List<Application> App { get; set; }
}
public class Application
{
public string Name { get; set; }
public List<ClientApp> Client { get; set; }
}
public class ClientApp
{
public string Id { get; set; }
}
答案 0 :(得分:5)
您可以使用Enumerable.Any
的嵌套调用来过滤此内容:
var filtered = users.Where(u =>
u.App.Any(
a => a.Name == "example"
&& a.Client.Any(c => c.Id == 1)));