Collection(Of T)是一个基于0的数组还是一个基于1的数组?

1 vb.net

如果它是基于0的,我们如何添加占位符以使其基于1?谢谢.

Mar*_*ell 8

它基于0.回归问题可能是:你为什么要让它以1为基础?

使用扩展方法,您可以(如果您愿意)执行:

<Extension()>
Public Function GetOneBased(Of T)(ByVal list As IList(Of T), ByVal index As Integer) As T
   Return list(index-1)
End Function

<Extension()>
Public Sub SetOneBased(Of T)(ByVal list As IList(Of T), ByVal index As Integer, ByVal value As T)
   list(index-1) = value
End Sub
Run Code Online (Sandbox Code Playgroud)

然后使用(几乎任何收藏):

Dim foo = data.GetOneBased(1)
data.SetOneBased(1, bar)
Run Code Online (Sandbox Code Playgroud)