我正在尝试使用.Contains()
自定义对象列表上的函数。
这是列表:
List<CartProduct> CartProducts = new List<CartProduct>();
And the CartProduct
:
public class CartProduct
{
public Int32 ID;
public String Name;
public Int32 Number;
public Decimal CurrentPrice;
/// <summary>
///
/// </summary>
/// <param name="ID">The ID of the product</param>
/// <param name="Name">The name of the product</param>
/// <param name="Number">The total number of that product</param>
/// <param name="CurrentPrice">The currentprice for the product (1 piece)</param>
public CartProduct(Int32 ID, String Name, Int32 Number, Decimal CurrentPrice)
{
this.ID = ID;
this.Name = Name;
this.Number = Number;
this.CurrentPrice = CurrentPrice;
}
public String ToString()
{
return Name;
}
}
当我尝试在列表中查找类似的购物车产品时:
if (CartProducts.Contains(p))
它忽略类似的购物车产品,我似乎不知道它检查什么 - ID?或者根本没有?
如果您使用 .NET 3.5 或更高版本,您可以使用 LINQ 扩展方法来实现“包含”检查Any扩展方法:
if(CartProducts.Any(prod => prod.ID == p.ID))
这将检查产品是否存在于CartProducts
其 ID 与以下 ID 匹配p
。您可以在后面放置任何布尔表达式=>
执行检查。
这对于 LINQ-to-SQL 查询以及内存中查询也有好处,其中Contains
没有。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)