Easiest way to Rotate a List in c#

后端 未结 16 3177
鱼传尺愫
鱼传尺愫 2020-12-01 07:06

Lists say I have a list List {1,2,3,4,5}

Rotate means:

=> {2,3,4,5,1} => {3,4,5,1,2} => {4,5,1,2,3}
16条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-01 07:35

    My solution for Arrays:

        public static void ArrayRotate(Array data, int index)
        {
            if (index > data.Length)
                throw new ArgumentException("Invalid index");
            else if (index == data.Length || index == 0)
                return;
    
            var copy = (Array)data.Clone();
    
            int part1Length = data.Length - index;
    
            //Part1
            Array.Copy(copy, 0, data, index, part1Length);
            //Part2
            Array.Copy(copy, part1Length, data, 0, index);
        }
    

提交回复
热议问题