using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
public static void Main(){
var personTables = new List<Persontable>{
new Persontable{Name = "John", AllApartments = new List<int>{1, 2, 3}, Active = false},
new Persontable{Name = "Mary", AllApartments = new List<int>{1}, Active = true},
};
var apartments = new List<Apartment>{
new Apartment { Id = 1, Name = "LA downtown apts"},
new Apartment { Id = 2, Name = "NYC downtown apts"},
};
var result = personTables.Select( p => new PersontableAparment{
Name = p.Name,
AllApartmentsNames = apartments.Where(a => p.AllApartments.Contains(a.Id)).Select(x => x.Name).ToList(),
Active = p.Active,
});
foreach (var item in result){
Console.WriteLine("Name: " + item.Name);
foreach(var apartment in item.AllApartmentsNames)
{
Console.WriteLine("Apartment Name:" + apartment);
}
Console.WriteLine("Active: " + item.Active);
}
}
public class Persontable
{
public string Name { get; set;}
public List<int> AllApartments { get; set;}
public bool Active {get; set;}
}
public class Apartment
{
public int Id {get; set;}
public string Name {get; set;}
}
public class PersontableAparment
{
public string Name { get; set; }
public List<string> AllApartmentsNames { get; set; }
public bool Active { get; set; }
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnB1YmxpYyBjbGFzcyBUZXN0CnsKCQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKXsKdmFyIHBlcnNvblRhYmxlcyA9IG5ldyBMaXN0PFBlcnNvbnRhYmxlPnsKCQluZXcgUGVyc29udGFibGV7TmFtZSA9ICJKb2huIiwgQWxsQXBhcnRtZW50cyA9IG5ldyBMaXN0PGludD57MSwgMiwgM30sIEFjdGl2ZSA9IGZhbHNlfSwKCQluZXcgUGVyc29udGFibGV7TmFtZSA9ICJNYXJ5IiwgQWxsQXBhcnRtZW50cyA9IG5ldyBMaXN0PGludD57MX0sIEFjdGl2ZSA9IHRydWV9LAoJfTsKCQoJdmFyIGFwYXJ0bWVudHMgPSBuZXcgTGlzdDxBcGFydG1lbnQ+ewoJCW5ldyBBcGFydG1lbnQgeyBJZCA9IDEsIE5hbWUgPSAiTEEgZG93bnRvd24gYXB0cyJ9LAoJCW5ldyBBcGFydG1lbnQgeyBJZCA9IDIsIE5hbWUgPSAiTllDIGRvd250b3duIGFwdHMifSwKCX07CgkKCXZhciByZXN1bHQgPSBwZXJzb25UYWJsZXMuU2VsZWN0KCBwID0+IG5ldyBQZXJzb250YWJsZUFwYXJtZW50ewoJCU5hbWUgPSBwLk5hbWUsCgkgICAgQWxsQXBhcnRtZW50c05hbWVzID0gYXBhcnRtZW50cy5XaGVyZShhID0+IHAuQWxsQXBhcnRtZW50cy5Db250YWlucyhhLklkKSkuU2VsZWN0KHggPT4geC5OYW1lKS5Ub0xpc3QoKSwKCQlBY3RpdmUgPSBwLkFjdGl2ZSwKCX0pOwoJCglmb3JlYWNoICh2YXIgaXRlbSBpbiByZXN1bHQpewoJCUNvbnNvbGUuV3JpdGVMaW5lKCJOYW1lOiAiICsgaXRlbS5OYW1lKTsKCQlmb3JlYWNoKHZhciBhcGFydG1lbnQgaW4gaXRlbS5BbGxBcGFydG1lbnRzTmFtZXMpCgkJewoJCQlDb25zb2xlLldyaXRlTGluZSgiQXBhcnRtZW50IE5hbWU6IiArIGFwYXJ0bWVudCk7CgkJCQoJCX0KCQkKCQlDb25zb2xlLldyaXRlTGluZSgiQWN0aXZlOiAiICsgaXRlbS5BY3RpdmUpOwoJfQp9CgpwdWJsaWMgY2xhc3MgUGVyc29udGFibGUKewoJcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7fQoJcHVibGljIExpc3Q8aW50PiBBbGxBcGFydG1lbnRzIHsgZ2V0OyBzZXQ7fQoJcHVibGljIGJvb2wgQWN0aXZlIHtnZXQ7IHNldDt9Cn0KCnB1YmxpYyBjbGFzcyBBcGFydG1lbnQKewoJcHVibGljIGludCBJZCB7Z2V0OyBzZXQ7fQoJcHVibGljIHN0cmluZyBOYW1lIHtnZXQ7IHNldDt9Cn0KCnB1YmxpYyBjbGFzcyBQZXJzb250YWJsZUFwYXJtZW50IAp7CiAgICBwdWJsaWMgc3RyaW5nIE5hbWUgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIExpc3Q8c3RyaW5nPiBBbGxBcGFydG1lbnRzTmFtZXMgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIGJvb2wgQWN0aXZlIHsgZ2V0OyBzZXQ7IH0KCn0KfQ==