重复列表中的项目

时间:2014-01-16 17:53:13

标签: c# list repeat items

具有相同项目编号的项目不应在列表中重复,我尝试了这段代码,但它没有帮助。

if (salesX.Count > 0)
{
    foreach (SalesList saleX in salesX.ToList())
    {
        int index = sales.FindIndex(item => item.ItemNumber == saleX.ItemNumber);
        if (index > 0)
        {
            sales[index].PosQuantity = +saleX.PosQuantity;
            sales[index].PosSales = +saleX.PosSales;

        }
        else { sales.Add(saleX); }
    }
}

3 个答案:

答案 0 :(得分:4)

如果列表开头有匹配的项目,您仍会添加副本 您想检查索引是否也为零。

答案 1 :(得分:1)

一种可能的解决方案是创建一个词典列表来定义项目是否存在。

字典会列出所有唯一的ItemNumbers,你可以使用ContainsKey方法来确定它是否已经存在。

MSDN Link

答案 2 :(得分:1)

将您的条件更改为index != -1,它应该有效

if (index != -1)
{
    sales[index].PosQuantity = +saleX.PosQuantity;
    sales[index].PosSales = +saleX.PosSales;

}