c#如何避免将相同的产品id从textbox.text添加到listbox

c#如何避免将相同的产品id从textbox.text添加到listbox,c#,C#,这里有一个代码告诉您,对于名为product of aProductListSource.DataSource的绑定列表中的每个产品,我有一个if语句,如果product.ProdID等于您输入的文本,您应该将其添加到列表框中。但问题是我想要一个限制器。。。我不希望同一个id被添加多个。 以下是我的代码,演示了我迄今为止所做的工作: private void AddToCartButton_Click(object sender, EventArgs e) { foreach (var

这里有一个代码告诉您,对于名为product of a
ProductListSource.DataSource
的绑定列表中的每个产品,我有一个if语句,如果
product.ProdID
等于您输入的文本,您应该将其添加到列表框中。但问题是我想要一个限制器。。。我不希望同一个id被添加多个。 以下是我的代码,演示了我迄今为止所做的工作:

private void AddToCartButton_Click(object sender, EventArgs e)
{
    foreach (var product in (BindingList<Product>) ProductListSource.DataSource)
    {
        if (product.ProdID == ProdIDText.Text.Trim())
        {
            CartList.Items.Add(product);
        }
    }
}
private void AddToCartButton\u单击(对象发送者,事件参数e)
{
foreach(绑定列表中的var产品)ProductListSource.DataSource
{
if(product.ProdID==ProdIDText.Text.Trim())
{
CartList.Items.Add(产品);
}
}
}

您可以使用Distinct LINQ extension方法筛选具有通用产品ID的产品:

var productList = (BindingList<Product>)ProductListSource.DataSource;
foreach (var product in productList.Distinct((one, two) => one.ProdID == two.ProdID)) 
{
    if (product.ProdID == ProdIDText.Text.Trim())
    {
        CartList.Items.Add(product);
    }
}
var productList=(BindingList)ProductListSource.DataSource;
foreach(productList.Distinct((一,二)=>1.ProdID==2.ProdID)中的var乘积)
{
if(product.ProdID==ProdIDText.Text.Trim())
{
CartList.Items.Add(产品);
}
}

如果productid已经存在,请检查listbox.items。
CartList.items.Contains
。感谢mjwills的帮助,我的思维过程完全不正常,dude,我假设目标是product.productid。。。我应该瞄准的是产品本身…你的解决方案对我的代码不起作用,伙计,谢谢你的帮助!