Есть массив.
int size = 10;
byte[] data = new byte[size];
Необходимо зациклить его пространство индексов. То есть, что бы по индексу 10 мы получали элемент с индексом 0, 11 -> 1, -4 -> 6, -12 -> 8,...
Самый очевидный тут вариант, конечно же проверка условием:
Синтаксис:
Используется csharp
byte GetElem(int x)
{
while (x > size - 1)
x = x - size;
while (x < 0)
x = x + size;
return data[x];
}
{
while (x > size - 1)
x = x - size;
while (x < 0)
x = x + size;
return data[x];
}
Но возможно, есть и какой-то другой, более оптимальный (с точки зрения производительности) вариант?
Пожалуйста, подскажите решение. Для меня вопрос оптимизации данного момента очень важен.