Voglio modificare un elenco (in realtà informazioni memorizzate in un database). Una persona non ha accesso all'aggiornamento di ogni parte dell'elenco, ma può aggiornare ed eliminare le parti a cui ha accesso e aggiungere ciò che desidera all'elenco.
Ecco il mio pseudocodice:
ModifiedList
OriginalList
OriginalListWithUserRights
for each Thing in ModifiedList do
if Thing in OriginalList then
//Leave Along - nothing to change
else
OriginalList.add(Thing)
for each Thing in OriginalList do
if (Thing in ModifiedList) then
//LeaveAlone - nothing to change (same as above)
else
for each RightsThing in OriginalListWithUserRights do
if RightsThing not in OriginalList then
//Leave Alone - don't remove things you don't have rights to
else
OriginalList.Remove(RightsThing)
OriginalList.ReIndex() //because there will be some gaps
Quindi, immagino che funzioni, ma penso che non sia giusto perché è solo una soluzione ovvia. Non ho bisogno di iniziare con tre elenchi come input per questa funzione. Potrei cercare particolari informazioni mentre sto scorrendo la mia lista modificata. Sembra appena strutturato e non abbastanza orientato agli oggetti per il 2014.
Un problema che ho è che aggiungerò tutto alla fine della lista, sembra che dovrei aggiungere cose relative a dove erano nella lista passata, ma in un modo che non rovinare l'ordine di cose che non sono nel mio OriginalListWithUserRights.