2014-01-16 90 views
2

項目編號相同的項目不應在列表中重複,我試過這段代碼,但沒有幫助。在列表中重複項目

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); } 
    } 
} 

回答

4

如果在列表開頭有一個匹配的項目,您仍然會添加一個副本。
你想檢查索引是否爲零。

+0

感謝您的幫助。如果你有時間可以請你幫我解決這個問題:http://stackoverflow.com/questions/21168572/what-is-the-optimum-way-of-getting-records-from-database-in-scenario -hat-you-ha – Davy

1

一個可能的解決方案是創建一個字典列表來定義該項目是否存在。

Dictionary將列出所有唯一的ItemNumbers,並且您將使用ContainsKey方法確定它是否已經存在。

MSDN Link

+0

感謝您的建議。 – Davy

1

更改條件index != -1,它應該工作

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

} 
+0

感謝您的幫助。它解決了我的問題。 – Davy