编写此代码的更有效或更短的方法?

More efficient or shorter way to write this code?

好的,我的数据库是这样工作的。每家公司都有一份与该公司相关的用户列表。每个用户都有一个与该用户相关的客户列表。我需要一种方法来有效地列出与该公司间接关联的所有客户(客户只与其用户的公司关联)。这是我到目前为止想出的:

 List<User> users = db.Users.Where(u => u.CompanyId == 1 /*this company's Id*/).ToList();
            List<Client> clients = new List<Client>();
            foreach (User user in users)
            {
                clients.AddRange(user.Clients);
            }

这是最好的方法还是有一种方法可以在一行中使用 Linq SQL 来优化代码?

我会走另一个方向,使用 SelectMany,像这样:

var clients = company.Users.SelectMany(u => u.Clients)

当然,您确实需要先获取公司对象(而不是关闭 ID)。