.Contains() 自定义类对象列表

2023-11-24

我正在尝试使用.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(使用前将#替换为@)

.Contains() 自定义类对象列表 的相关文章

随机推荐