Jeden algoritmicky dotaz, mam dva Listy A a B s objekty typu P.
Jak v C# co nejefektivneji ziskat seznam prvku, ktere jsou jenom v A, jen v B a potom seznam Tuplu prvku, ktere jsou v obou listech, vzdy Tuple<P,P> kde prvni prvek je z A a druhy z B?
Ted mam toto a premyslim, zda to udelat efektivneji, aby se zbytecne nealokovala pole a nebylo tam vice pruchodu navic.
Predpoklad je, ze pole jsou jiz sesortovane.
private static IEnumerable<T> CompareItems<T>(T[] oldItems, T[] newItems)
{
T[] removedItems = oldItems.Except(newItems).ToArray();
T[] addedItems = newItems.Except(oldItems).ToArray();
T[] sameOld = oldItems.Except(removedItems).ToArray();
T[] sameNew = newItems.Except(addedItems).ToArray();
Tuple<T, T>[] zip = sameOld.Zip(sameNew, (i1, i2) => new Tuple<T, T>(i1, i2)).ToArray();
}