Is there a LINQ way to swap the position of two items inside a list?
List has a Reverse() method, however it only reverses the order of two (or more) consecutive items.
your_list.Reverse(index, 2);
Where the second parameter 2 indicates we are reversing the order of 2 items, starting with the item at the given index.
Source: https://msdn.microsoft.com/en-us/library/hf2ay11y(v=vs.110).aspx