Сергей, достаточно просто пробежать по полученным множествам
X++:
{
...
set1 = Set::difference(_setOfValues2Replace, _setOfNewValues);
set2 = Set::difference(_setOfNewValues, _setOfValues2Replace);
sEnum1 = set1.getEnumerator();
sEnum2 = set2.getEnumerator();
while (sEnum.moveNext())
{
if (sEnum1.moveNext())
ret.addEnd([sEnum.current(), sEnum1.current()]);
}
return ret;
}
Для множеств из примера, у
gl00mie получается такая замена
1->2, 3->1, 7->3, 0->4, 9->5, 15->6, 20->7
Для такой замены
0->2, 9->4, 15->5, 20->6