在VB.Net中填充整行2D-Array

时间:2016-09-06 08:06:20

标签: arrays vb.net 2d row fill

我有一个二维数组,我想用值填充,但仅限于特定的行和列(不是全部)。例如,我希望列15中的所有值均为15°,列30中为30°,依此类推。与行相同。

我可以用两个索引手动填写每个值,但这有点与数组相对应,对吗?

有没有办法通过定义行的索引然后将第二个索引与值一起填充数组的整个行?

这样的事情:

Dim values(300,45) As Double

'I want to fill row 15 in columns 15, 30 and 45
values(15) = {{15, 0.06},{30, 0.04},{45, 0.03}}

'now row 20, again just columns 15, 30 and 45
values(20) = {{15, 0.26},{30, 0.23},{45, 0.17}}

我知道这不起作用,只是为了让你知道我的想法。

我希望我的问题是可以理解的,谢谢你的帮助:)。

1 个答案:

答案 0 :(得分:0)

在VB语言中我没有提供任何类型的实用程序。您可以使用扩展方法来接近该语法。

Module ArrayExtensions
    <System.Runtime.CompilerServices.Extension()>
    Public Sub LoadValues(Of T)(arrayToFill As T(,), rowIndex As Int32, ParamArray items() As Array)
        For Each ar As Array In items
            Dim colIndex As Int32 = CInt(ar.GetValue(0))
            Dim val As T = CType(ar.GetValue(1), T)
            arrayToFill(rowIndex, colIndex) = val
        Next
    End Sub
End Module

然后使用你的例子:

Dim values(300, 45) As Double

'I want to fill row 15 in coloumns 15, 30 and 45
values.LoadValues(15, {15, 0.06}, {30, 0.04}, {45, 0.03})

'now row 20, again just coloums 15, 30 and 45
values.LoadValues(20, {15, 0.26}, {30, 0.23}, {45, 0.17})