So I have a generic list, and an oldIndex and a newIndex value.
I want to move the item at oldIndex, to newIndex.
Insert the item currently at oldIndex to be at newIndex and then remove the original instance.
list.Insert(newIndex, list[oldIndex]);
if (newIndex <= oldIndex) ++oldIndex;
list.RemoveAt(oldIndex);
You have to take into account that the index of the item you want to remove may change due to the insertion.