2
如何修改linq语句,以便找到包含用户的公司的子字符串为“third”?linq string.contains子对象列表字段
目前它仅在搜索完整用户名(即包含(“第三个用户”))时起作用,因为它在列表中搜索匹配项,而不是字符串。
class Company
{
public Company(List<User> users) { this.Users = users; }
public List<User> Users { get; set; }
}
class User
{
public User(string name) { this.Name = name; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Company> companies = new List<Company>();
Company company1 = new Company(new List<User>(){ new User("first user"), new User("second user") });
Company company2 = new Company(new List<User>() { new User("third user"), new User("fourth user") });
companies.Add(company1);
companies.Add(company2);
companies = companies
.Where(company => company.Users.Select(user => user.Name)
.Contains("third")).ToList();
}
}
很好,谢谢。我最初尝试在user.Name上调用Contains,但它不会编译。我现在看到'Any'关键字是缺失的成分,我将在此处详细阅读。 – user1087450
这不是关键字 - 它是一种扩展方法。请参阅文档:['Enumerable.Any'](http://msdn.microsoft.com/zh-cn/library/bb534972.aspx) –