2013-03-13 63 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

相關問題