我正在查找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" }
}
}
}
}我想从Cart =>获得一个CartProduct,它的CartProductAttribute标题值与需要比较的CartProduct完全相同。不多也不少。
例如,我需要找到一个类似的CartProduct,它在myCart中有一个带有title=“红色”的CartProductAttribute和一个带有title="small“的cartProductAttribute (例如示例中的'cartProduct1‘)。
CartProduct cartProductToCompare = new CartProduct
{
List<CartProductAttribute> cartProductToCompareAttributes = new List<CartProductAttribute>
{
CartProductAttribute cpa5 = new CartProductAttribute{ title="red" },
CartProductAttribute cpa6 = new CartProductAttribute{ title="small" }
}
}所以从对象图来看
(title=red)
- cartProduct2
- cpa3 (title=john)
- cpa4 (title=mary)
Linq查询查找
应该找到
希望这一切都有意义..。
谢谢
发布于 2010-04-17 01:03:24
我想这就是你想要的。
var attributes = new [] { "red", "small" };
var result = myCart.Products.Where(product =>
product.Attributes.All(attribute =>
attributes.Contains(attribute.title)
)
);https://stackoverflow.com/questions/2656795
复制相似问题