【发布时间】:2020-08-06 10:36:46
【问题描述】:
例如,我如何获得当前索引 -5。我知道如何获取当前索引,并且可以减去或添加到该索引,但这会导致 Array 越界错误。假设数组有 15 个项目(索引 0/14),我当前的索引是 2,如果我减去 5,它将返回 -3。这在数组中不存在。现在我想要的是,当索引为 2 并且我减去 5 时它返回 11,所以它应该始终循环遍历数组。显然,这同样适用于添加 5。
【问题讨论】:
-
你能告诉你到目前为止你尝试了什么吗?
-
在这种情况下,我目前只尝试了 x (5) 的减法或加法,但这给出了超出范围的错误。老实说,当我减去接近 0 索引或添加接近数组长度时,我不知道如何知道 x 的余数是多少。
-
如果你只是想循环一个数组,当数字超出下端的界限时,你可以添加数组的长度,当它超出界限时上端你可以减去数组的长度。只要您添加/减去的数量小于数组的长度,那应该可以。如果可以帮助您将其可视化,请在纸上写一些场景(起始索引、结果索引、所需索引)。
-
该死的,这太明显了,我不明白为什么我完全错过了这个:像 if(_currentIndex array.Length) {_currentIndex -= _array.Lenght}应该做对吗?
-
确实应该。
标签: c# arrays unity3d indexing circular-buffer