我需要一个程序来反转两个终端之间的列表的一部分。
范例:

清单: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/

10-10 13:00