0

我正在开发一个填充多个数组的应用程序。但它最初是一个 VB6 应用程序,它不使用其中任何一个元素的零。这会阻止类似的事情

my_array.Min

从正常工作。我不打算篡改应用程序的内部结构,但是如果我可以在这种语句中指定数组元素的范围会非常方便;就像是

my_array(1:100).Min

这样的结构是否存在,如果存在,它是什么?

4

1 回答 1

2

不幸的是,.NET 没有方便的数组切片构造1(尽管您可以使用 Linq 来近似它)但是您在这里解决了 XY 问题中的错误 X。

真正的解决方案是不使用基于 1 的数组。一定要改变你的应用程序的内部结构。

顺便说一句,VB6 中数组的默认基数也是零。您明确需要指定Option Base 1基于 1 的数组。


1但在ArraySegment(T).NET 4.5 之前,这种结构完全被破坏了,因为它没有实现IList(T)接口,因此无法使用。它现在确实实现了,但为时已晚——没有人使用该类。

于 2013-03-13T15:47:40.500 回答