我正在尝试使用Linq搜索某个产品。 我将如何进行?
public class ShoppingCart : List<CartLine>
{
// implement constructors you want available
public ShoppingCart(){}
public ShoppingCart( IEnumerable<CartLine> collection ) : base( collection ) {}
public ShoppingCart( int capacity ) : base( capacity ) {}
}
public class CartLine
{
public int CartLineId { get; set; }
public Product Product { get; set; }
public int Quantity { get; set; }
}
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string ProductDescription { get; set; }
public string ImageLocation { get; set; }
public int? ProductCategoryId { get; set; }
public virtual ProductCategory ProductCategory { get; set; }
}
ShoppingCart shoppingCart = new ShoppingCart();
Linq查询搜索: 这一直在给我错误,尝试使用Resharper使其进入我的存储库模式,进行测试
shoppingCart.Find(p=>p.CartLine.Product.ProductName) = "SamsungTV"
答案 0 :(得分:2)
在shoppingCart.Find(p=>p.CartLine.Product.ProductName)
行中,p
已经是CartLine
。您还需要在查询中比较ProductName
。试试
CartLine cartLine = shoppingCart.Find(p => p.Product.ProductName == "SamsungTV");
答案 1 :(得分:1)
对于LINQ,您可以使用“哪里”吗?
var result = shoppingCart.Product.Where(x => x.ProductName == "SamsungTV").ToList();
现在,只有在产品名称为Samsung TV的情况下,您才能在“结果”中拥有所有内容的列表,以进行所需的操作。
答案 2 :(得分:0)
如果要查找产品名称为CartLine
的{{1}}实例,则可以使用以下表达式:
"SamsungTV"
它将使用顺序(二进制)排序规则查找产品,而忽略产品名称的大小写。如果要使用其他字符串比较规则,请使用StringComparison
枚举对其进行定义。