Вариант 1
static void Rotate(Array array, int c)
{
if (c < 0) throw new ArgumentException(nameof(c));
int n = array.Length;
c %= n;
Array.Reverse(array);
Array.Reverse(array, 0, n - c);
Array.Reverse(array, n - c, c);
}
Вариант 2
static void Rotate(Array array, int c)
{
if (c < 0) throw new ArgumentException(nameof(c));
int n = array.Length;
c %= n;
array = array.Skip(n-c).Concat(array.Take(n - c)).ToArray();
}