我有一个名为A的observablecollection,其中包含属性id,年龄,名称,Am,将更改后的内容存储在另一个集合中B.现在我想将对象A中的相同项替换为B中已更改的内容。如何才能实现它
foreach(var item in A)
{
}
答案 0 :(得分:3)
您可以使用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;
}
答案 1 :(得分:0)
假设“是的,我需要用相同的A”
索引替换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)
}
答案 2 :(得分: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;
}