c#如何避免将相同的产品id从textbox.text添加到listbox
这里有一个代码告诉您,对于名为product of ac#如何避免将相同的产品id从textbox.text添加到listbox,c#,C#,这里有一个代码告诉您,对于名为product of aProductListSource.DataSource的绑定列表中的每个产品,我有一个if语句,如果product.ProdID等于您输入的文本,您应该将其添加到列表框中。但问题是我想要一个限制器。。。我不希望同一个id被添加多个。 以下是我的代码,演示了我迄今为止所做的工作: private void AddToCartButton_Click(object sender, EventArgs e) { foreach (var
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。。。我应该瞄准的是产品本身…你的解决方案对我的代码不起作用,伙计,谢谢你的帮助!