我需要一个程序来反转两个终端之间的列表的一部分。
范例:
清单:1、2、3、3、5、4
输出:1、2、3、3、4、5(仅将4和5取反)
我找到了这个:
positionCrepe.Reverse(indexOfMaxToSearch, positionCrepe.Count);
但这不起作用,因为我有一个错误:
System.ArgumentException:此表的偏移量和长度超出范围,或者该数目大于源集合末尾的索引元素的数目。
然而
indexOfMaxToSearch = 2
和
positionCrepe.count = 5
因此它不超过表的索引
有人有解决办法吗?
谢谢。
最佳答案
第二个参数是要反转的元素数,而不是列表中有多少个元素。
因此,如果要撤消从indexOfMaxToSearch
开始的所有内容,则要撤消positionCrepe.Count - indexOfMaxToSearch
元素:
positionCrepe.Reverse(indexOfMaxToSearch, positionCrepe.Count - indexOfMaxToSearch);
错误消息实际上是说第一个参数加上第二个参数超出了数组的范围。
关于c# - 反转列表C#的特定部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59273008/