我正在开发一个填充多个数组的应用程序。但最初是VB6应用程序,它不使用任何元素的零元素。这会阻止像
这样的事情my_array.Min
工作正常。我没有计划篡改应用程序的内部,但如果我可以在这种语句中指定一系列数组元素,那将是非常方便的。
之类的东西my_array(1:100).Min
这样的结构是否存在,如果存在,它是什么?
答案 0 :(得分:2)
不幸的是,.NET没有方便的数组切片构造 1 (尽管你可以使用Linq来近似它),但是你在这里解决了XY问题中的错误X.
真正的解决方案是不要使用基于1的数组。 更改应用程序的内部结构。
顺便提一下,VB6中数组的默认基础是也为零。您明确需要为基于1的数组指定Option Base 1
。
1 有ArraySegment(T)
但是在.NET 4.5之前,这个结构完全被破坏了,因为它没有实现IList(T)
接口,因此无法使用。它现在确实实现了,但为时已晚 - 没有人使用该类。