2013-03-13 52 views
0

我正在处理填充大量数组的应用程序。但最初是VB6应用程序,它不使用任何元素的元素0。这会阻止像如何指定一个数组元素的范围

my_array.Min 

无法正常工作。我没有计划篡改应用程序的内部,但是如果我可以在这种声明中指定一系列数组元素,将会非常方便;像

my_array(1:100).Min 

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

+0

什么是Min?你能展示在VB.NET中编译的代码吗? – 2013-03-13 15:48:20

回答

2

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

真正的解决方案不是使用基于1的阵列。 更改您的应用程序的内部。

顺便提一下,VB6中的数组的默认基数是也是零。您明确需要为基于1的阵列指定Option Base 1


ArraySegment(T)但在此之前.NET 4.5这样的结构,因为它没有实现IList(T)接口,并且因而不可被彻底打破。它现在确实实现了,但已经太迟了 - 没有人使用这个类。

+1

+1。我猜布赖恩是指由开发人员编写的代码,他们不知道VB6的默认行为,例如编写'Dim a(5)'并且只访问元素1-5。这是一个常见问题。 :-( – 2013-03-13 15:51:34

+0

感谢你,叹了口气,我只想把未使用的下半部分从图中剔除,现在蠕虫已经脱离了罐头,到处都是蠕动,我猜想一个人必须做一个人必须做的事情。 .. – 2013-03-13 16:35:56

相关问题