2017-04-13 82 views
-1

我有一個可觀察集合名稱A帶有屬性id,年齡,名稱,我將更改的項目存儲在另一個集合B中。現在我想用對象A中的相同項目替換在B中改變了事情。我該如何實現它。用一個新項目替換集合中的項目

foreach(var item in A) 
{ 
} 
+0

這兩個集合屬性是否相同? –

+0

是的,我需要用B的相同索引替換B中的項 –

回答

0

從「是的,我需要的相同的指數來替代B中的項目」

for(int i = 0; i < A.Count; i++) 
{ 
    B[i] = A[i]; //or A[i] = B[i]; 
    // You could compare by: if(A[i].ID == B[i].ID) 
} 
0

您可以按照這樣假設:

public static IList<T> Swap<T>(this IList<T> list, int indexA, int indexB) 
{ 
    if (indexB > -1 && indexB < list.Count) 
    { 
     T tmp = list[indexA]; 
     list[indexA] = list[indexB]; 
     list[indexB] = tmp; 
    } 
    return list; 
} 
2

您可以使用Zip運算符

 ObservableCollection<ObjType> obsCollectionA = new ObservableCollection<ObjType>(); 
     ObservableCollection<ObjType> obsCollectionB = new ObservableCollection<ObjType>(); 

     foreach (var pair in obsCollectionA.Zip(obsCollectionB, (a, b) => new { A = a, B = b })) 
     {     
      pair.A.Id = pair.B.Id; 
      pair.A.Name = pair.B.Name; 
      pair.A.Age = pair.B.Age; 
     } 
相關問題