So I have a generic list, and an oldIndex and a newIndex value.
I want to move the item at oldIndex, to newIndex…as simply as possible.
Any suggestions?
Note
The item should be end up between the items at (newIndex - 1) and newIndex before it was removed.
I know you said “generic list” but you didn’t specify that you needed to use the List(T) class so here is a shot at something different.
The ObservableCollection(T) class has a Move method that does exactly what you want.
Underneath it is basically implemented like this.
So as you can see the swap method that others have suggested is essentially what the ObservableCollection does in it’s own Move method.
UPDATE 2015-12-30: You can see the source code for the Move and MoveItem methods in corefx now for yourself without using Reflector/ILSpy since .NET is open source.