功能实现目标:最近项目中遇到的一个需求,要求在list中索引为index的位置,index后的片段换到前面,index前的移到前面,也就是从index的位置前后交换。
例如:A B C D E F 从索引为3的位置开始交换片段,交换后变为D E F A B C
ok,代码实现如下:
/// <summary>
/// 交换list的某个片段
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="original"></param>
/// <param name="swapIndex"></param>
/// <returns></returns>
public static List<T> SwapList<T>(List<T> original,int swapIndex)
{
if (swapIndex < 0 || swapIndex > original.Count)
{
swapIndex = 0;
}
List<T> partList = original.GetRange(swapIndex, original.Count - swapIndex);
original.RemoveRange(swapIndex, original.Count - swapIndex);
original.InsertRange(0, partList);
return original;
}