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