我有一个可观察集合名称A带有属性id,年龄,名称,我将更改的项目存储在另一个集合B中。现在我想用对象A中的相同项目替换在B中改变了事情。我该如何实现它。用一个新项目替换集合中的项目
foreach(var item in A)
{
}
我有一个可观察集合名称A带有属性id,年龄,名称,我将更改的项目存储在另一个集合B中。现在我想用对象A中的相同项目替换在B中改变了事情。我该如何实现它。用一个新项目替换集合中的项目
foreach(var item in 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)
}
您可以按照这样假设:
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;
}
您可以使用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;
}
这两个集合属性是否相同? –
是的,我需要用B的相同索引替换B中的项 –