我正在寻找linq查询,看看是否存在类似的对象
我有一个对象图如下
Cart myCart = new Cart
{
List<CartProduct> myCartProduct = new List<CartProduct>
{
CartProduct cartProduct1 = new CartProduct
{
List<CartProductAttribute> a = new List<CartProductAttribute>
{
CartProductAttribute cpa1 = new CartProductAttribute{ title="red" },
CartProductAttribute cpa2 = new CartProductAttribute{ title="small" }
}
}
CartProduct cartProduct2 = new CartProduct
{
List<CartProductAttribute> d = new List<CartProductAttribute>
{
CartProductAttribute cpa3 = new CartProductAttribute{ title="john" },
CartProductAttribute cpa4 = new CartProductAttribute{ title="mary" }
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想从Cart =>一个CartProduct获得具有与我需要比较的CartProduct完全相同的CartProductAttribute标题值.不多也不少.
EG我需要在myCart中找到一个类似的CartProduct,其CartProductAttribute标题为title ="red",cartProductAttribute标题为title ="small"(例如示例中为'cartProduct1')
CartProduct cartProductToCompare = new CartProduct
{
List<CartProductAttribute> cartProductToCompareAttributes = new List<CartProductAttribute>
{
CartProductAttribute cpa5 = new CartProductAttribute{ title="red" },
CartProductAttribute cpa6 = new CartProductAttribute{ title="small" }
}
}
Run Code Online (Sandbox Code Playgroud)
所以从对象图
Linq查询寻找
应该找到
希望这一切都有道理......
谢谢
我想这就是你所追求的.
var attributes = new [] { "red", "small" };
var result = myCart.Products.Where(product =>
product.Attributes.All(attribute =>
attributes.Contains(attribute.title)
)
);
Run Code Online (Sandbox Code Playgroud)