Добавлен , не публикуется
Перебор значений с захлыстом - приём, заключающийся во взятии следующего/предыдущего индекса в массиве циклично.

Применение

При условии что предыдущий/следующий индекс может лежать вне границ массива, в этом случае мы должны взять элемент "с другого конца массива".
Если захлыст положительный, то легко определить следующий элемент через остаток от деления на длину массива:
for (int i = 0; i < items.Length; i++)
{
    var a = items[i];
    var b = items[(i+1)%items.Length];
}
Если используется отрицательный захлыст то удобнее вынести код в функцию, так как отрицательные значения считаются чуть менее тривиально:
count - (-value) % count
Часто применяется для:
  • перебора ребер фигуры
  • перебора углов фигуры

Код

    /// <summary>
    /// Возвращает цикличное значение в диапозоне
    /// </summary>
    public static int cyclic(int value, int count)
    {
        if (value < 0)
            return count - (-value) % count;
        return value % count;
    }
`
ОЖИДАНИЕ РЕКЛАМЫ...