2016-05-26 5 views
2

У меня есть два класса:Где положение о списке имущества

public class Customer 
{ 
    public string FirstName { get; set; } 

    public string LastName { get; set; } 

    public List<Product> Product { get; set; } 
} 

public class Product 
{ 
    public string ProductNumber { get; set; } 

    public string ProductColor { get; set; } 
} 

Я хочу, чтобы создать статью, где на имущество Product (Product.ProductColor == "") я делаю:

c.Where(x => x.Product.????? == "11").Select(x => x).ToList(); 

Как это сделать?

+0

всех клиенты, которые имеют определенную ProductColor, например –

ответ

3

Я предполагаю, что вы хотите, чтобы найти клиентов, которые имеют продукт с номером 11. Если это так, вы можете использовать функцию Any:

var result = c 
    .Where(x => x.Product.Any(p => p.ProductNumber == "11")) 
    .ToList(); 

кодовые фильтры только те клиенты, которые имеют по крайней мере один продукт, удовлетворяет условию ProductNumber == "11"

Или, если вы хотите, чтобы найти клиентов, которые имеют определенный цвет, то используйте другое выражение:

var result = c 
    .Where(x => x.Product.Any(p => p.ProductColor == "Color")) 
    .ToList(); 
2

С Product (который действительно должен быть назван Products) также является коллекцией, вам придется развернуть эту коллекцию. Например, если вы хотите, чтобы все Customer S из списка клиентов, где любого цвета продукта является "11", это может выглядеть следующим образом:

customers.Where(c => c.Product.Any(p => p.ProductColor == "11")) 
Смежные вопросы