2016-04-29 191 views
0

我想將數據從一個集合複製到另一個集合。我正在使用以下代碼。將數據從一個集合複製到另一個集合C#

foreach (var x in invVM.invFreeItemsWithBatch) 
      { 
       invVM.invitemsWithBatch.Add(x); 
      } 

但這是錯誤的。我該如何糾正?

enter image description here

enter image description here

public ObservableCollection<InvFreeItemWithBatch> invFreeItemsWithBatch = new ObservableCollection<InvFreeItemWithBatch>(); 
    public ObservableCollection<InvFreeItemWithBatch> AddInvFreeItemsByBatch(int intitemID, string stritem, double dblqty, double dblamount, string struOM, bool blnfreeIssue, 
     double dbluPrice, double dbldiscPerce, double dbldiscAmount, string strbatch, double dblBalanceForFreeqty) 
    { 
     invFreeItemsWithBatch.Add(new InvFreeItemWithBatch(intitemID, stritem, dblqty, dblamount, struOM, blnfreeIssue, dbluPrice, dbldiscPerce, 
      dbldiscAmount, strbatch, dblBalanceForFreeqty)); 
     stritem = ""; struOM = ""; 
     return invFreeItemsWithBatch; 
    } 

    public ObservableCollection<InvItemWithBatch> invitemsWithBatch = new ObservableCollection<InvItemWithBatch>(); 
    public ObservableCollection<InvItemWithBatch> AddInvItemsByBatch(int intitemID, string stritem, double dblqty, double dblamount, string struOM, bool blnfreeIssue, 
     double dbluPrice, double dbldiscPerce, double dbldiscAmount, string strbatch, double dblBalanceForFreeqty) 
    { 
     invitemsWithBatch.Add(new InvItemWithBatch(intitemID, stritem, dblqty, dblamount, struOM, blnfreeIssue, dbluPrice, dbldiscPerce, 
      dbldiscAmount, strbatch, dblBalanceForFreeqty)); 
     stritem = ""; struOM = ""; 
     return invitemsWithBatch; 
    } 
+1

什麼是invitemsWithBatch和invFreeItemsWithBatch? – BugFinder

+0

正如ASh所說,我們需要知道什麼是「錯」,錯誤是什麼?也許在此期間,你也可以看看這個問題/答案:http://stackoverflow.com/questions/4493858/elegant-way-to-combine-multiple-collections-of-elements –

+1

可能重複的[我如何從列表複製項目到列表沒有foreach?](http://stackoverflow.com/questions/1952185/how-do-i-copy-items-from-list-to-list-without-foreach) –

回答

0

invFreeItemsWithBatch包含不同的類型invitemsWithBatch元件。

一個列表包含的類型InvItemWithBatch元素,另一個包含InvFreeItemWithBatch。

如果您願意,您可以在foreach中創建新元素。

foreach (var x in invVM.invFreeItemsWithBatch) 
{ 
    var newItem = new InvFreeItemWithBatch(); 
    // set the values of newItem to match the values of x 
    // ... 
    invVM.invitemsWithBatch.Add(newItem); 
} 

也可以考慮讓InvItemWithBatch基類InvFreeItemWithBatch的:

class InvFreeItemWithBatch : InvItemWithBatch 

這樣您可以鍵入

foreach (var x in invVM.invFreeItemsWithBatch) 
     { 
      invVM.invitemsWithBatch.Add(x); 
     } 

,但你必須要考慮,這兩個名單將具有相同的參考文獻x

相關問題