Мне нужно вернуть всех клиентов со всеми действующими контактами:
Класс контакта:
public class Contact
{
public int ID { get; set; }
public string Name { get; set; }
public bool IsValid { get; set; }
}
Класс клиента:
public class Customer
{
public int ID { get; set; }
public string Name { get; set; }
public List<Contact> Contacts { get; set; }
}
Список клиентов:
List<Customer> customers = new List<Customer>
{
new Customer
{
ID = 1,
Name = "Ahmed",
Contacts = new List<Contact>
{
new Contact { ID = 1 , Name = "A", IsValid = true },
new Contact { ID = 2 , Name = "B", IsValid = true },
new Contact { ID = 3 , Name = "C", IsValid = true }
}
},
new Customer
{
ID = 2,
Name = "Mohamed",
Contacts = new List<Contact>
{
new Contact { ID = 4 , Name = "D", IsValid = true },
new Contact { ID = 5 , Name = "E", IsValid = true },
new Contact { ID = 6 , Name = "F", IsValid = false }
}
},
new Customer
{
ID = 3,
Name = "Ali",
Contacts = new List<Contact>
{
new Contact { ID = 7 , Name = "X", IsValid = false },
new Contact { ID = 8 , Name = "Y", IsValid = false },
new Contact { ID = 9 , Name = "Z", IsValid = false }
}
}
};
Результат, необходимый после применения LINQ:
List<Customer> customersResult = new List<Customer>
{
new Customer
{
ID = 1,
Name = "Ahmed",
Contacts = new List<Contact>
{
new Contact { ID = 1 , Name = "A", IsValid = true },
new Contact { ID = 2 , Name = "B", IsValid = true },
new Contact { ID = 3 , Name = "C", IsValid = true }
}
},
new Customer
{
ID = 2,
Name = "Mohamed",
Contacts = new List<Contact>
{
new Contact { ID = 4 , Name = "D", IsValid = true },
new Contact { ID = 5 , Name = "E", IsValid = true }
}
},
new Customer
{
ID = 3,
Name = "Ali",
Contacts = new List<Contact>()
}
};
мне нужно вернуть каждого клиента, и каждый клиент содержит только IsValid = true Contacts, сеть, в которой клиент не содержит IsValid Contacts Display без контактов,Как это можно сделать с помощью LINQ?