我正在處理填充大量數組的應用程序。但最初是VB6應用程序,它不使用任何元素的元素0。這會阻止像如何指定一個數組元素的範圍
my_array.Min
無法正常工作。我沒有計劃篡改應用程序的內部,但是如果我可以在這種聲明中指定一系列數組元素,將會非常方便;像
my_array(1:100).Min
這樣的結構是否存在,如果是這樣,它是什麼?
我正在處理填充大量數組的應用程序。但最初是VB6應用程序,它不使用任何元素的元素0。這會阻止像如何指定一個數組元素的範圍
my_array.Min
無法正常工作。我沒有計劃篡改應用程序的內部,但是如果我可以在這種聲明中指定一系列數組元素,將會非常方便;像
my_array(1:100).Min
這樣的結構是否存在,如果是這樣,它是什麼?
不幸的是,.NET沒有方便的數組切片構造(儘管可以使用Linq來近似它),但是您在這裏解決了XY問題中的錯誤X.
真正的解決方案不是使用基於1的陣列。 做更改您的應用程序的內部。
順便提一下,VB6中的數組的默認基數是也是零。您明確需要爲基於1的陣列指定Option Base 1
。
有ArraySegment(T)
但在此之前.NET 4.5這樣的結構,因爲它沒有實現IList(T)
接口,並且因而不可被徹底打破。它現在確實實現了,但已經太遲了 - 沒有人使用這個類。
+1。我猜布賴恩是指由開發人員編寫的代碼,他們不知道VB6的默認行爲,例如編寫'Dim a(5)'並且只訪問元素1-5。這是一個常見問題。 :-( – 2013-03-13 15:51:34
感謝你,嘆了口氣,我只想把未使用的下半部分從圖中剔除,現在蠕蟲已經脫離了罐頭,到處都是蠕動,我猜想一個人必須做一個人必須做的事情。 .. – 2013-03-13 16:35:56
什麼是Min?你能展示在VB.NET中編譯的代碼嗎? – 2013-03-13 15:48:20