using System;
using System.Collections.Generic;
using System.Linq;
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.Any(user => user.Name.Contains("third")))
.ToList();
foreach (Company company in companies) {
Console.WriteLine(string.Join(", ", company.Users.Select(user => user.Name).ToArray()));
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpjbGFzcyBDb21wYW55CnsKICAgIHB1YmxpYyBDb21wYW55KExpc3Q8VXNlcj4gdXNlcnMpIHsgdGhpcy5Vc2VycyA9IHVzZXJzOyB9CiAgICBwdWJsaWMgTGlzdDxVc2VyPiBVc2VycyB7IGdldDsgc2V0OyB9Cn0KCmNsYXNzIFVzZXIKewogICAgcHVibGljIFVzZXIoc3RyaW5nIG5hbWUpIHsgdGhpcy5OYW1lID0gbmFtZTsgfQogICAgcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0KfQoKY2xhc3MgUHJvZ3JhbQp7CiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgTGlzdDxDb21wYW55PiBjb21wYW5pZXMgPSBuZXcgTGlzdDxDb21wYW55PigpOwogICAgICAgIENvbXBhbnkgY29tcGFueTEgPSBuZXcgQ29tcGFueShuZXcgTGlzdDxVc2VyPigpeyBuZXcgVXNlcigiZmlyc3QgdXNlciIpLCBuZXcgVXNlcigic2Vjb25kIHVzZXIiKSB9KTsKICAgICAgICBDb21wYW55IGNvbXBhbnkyID0gbmV3IENvbXBhbnkobmV3IExpc3Q8VXNlcj4oKSB7IG5ldyBVc2VyKCJ0aGlyZCB1c2VyIiksIG5ldyBVc2VyKCJmb3VydGggdXNlciIpIH0pOwogICAgICAgIGNvbXBhbmllcy5BZGQoY29tcGFueTEpOwogICAgICAgIGNvbXBhbmllcy5BZGQoY29tcGFueTIpOwoKICAgICAgICBjb21wYW5pZXMgPSBjb21wYW5pZXMKICAgICAgICAgICAgLldoZXJlKGNvbXBhbnkgPT4gY29tcGFueS5Vc2Vycy5BbnkodXNlciA9PiB1c2VyLk5hbWUuQ29udGFpbnMoInRoaXJkIikpKQogICAgICAgICAgICAuVG9MaXN0KCk7CgogICAgICAgIGZvcmVhY2ggKENvbXBhbnkgY29tcGFueSBpbiBjb21wYW5pZXMpIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIiwgIiwgY29tcGFueS5Vc2Vycy5TZWxlY3QodXNlciA9PiB1c2VyLk5hbWUpLlRvQXJyYXkoKSkpOwogICAgICAgIH0KICAgIH0KfQ==