c# - unity array,获取当前索引 -x 或 +x
问题描述
例如,我如何获得当前索引 -5。我知道如何获取当前索引,并且可以减去或添加到该索引,但这会导致 Array 越界错误。假设数组有 15 个项目(索引 0/14),我当前的索引是 2,如果我减去 5,它将返回 -3。这在数组中不存在。现在我想要的是,当索引为 2 并且我减去 5 时它返回 11,所以它应该始终循环遍历数组。显然,这同样适用于添加 5。
解决方案
您可以像这样创建扩展方法:
public static int ComputeCircularIndex(this Array arr, int i)
{
int N = arr.GetLength(0);
if (i < 0)
{
i = N + (i % N);
}
else
{
i = i % N;
}
return i;
}
推荐阅读
- javascript - 循环过滤对象并设置新状态
- linux - 如果设备是 ext4,如何将块号映射到来自 vm.block_dump=1 的 dmesg 输出的文件名?
- wcf - WCF netTcp 服务不断崩溃,需要重新启动服务器
- r - 在 Keras R 中嵌入可视化字符的 Tensorboard(缺少 batch_input_shape 参数)
- r - CRAN R - 电子邮件验证器
- mysql - SET NAMES 和 SET CHARSET 的区别
- python - Maya - 在未捕获的异常上自动运行功能
- api - 如何使用 API 调用在 Jfrog X-Ray 中创建策略
- python - 无法在 TensorFlow 1.10 的 IndyLSTMCell 中使用 relu 激活
- javascript - OpenLayers:绘制多边形和点然后拖动它们