2016-09-06 5 views
0

값을 채우고 싶지만 특정 행과 열 (전부는 아님)에서만 원하는 2 차원 배열이 있습니다. 예를 들어 15 열에 15도, 30 열에 30도 등의 모든 값을 원합니다. 행과 동일합니다.VB.Net에서 2D 배열의 전체 행을 채우십시오.

두 지수를 사용하여 모든 값을 수동으로 채울 수는 있지만, 배열의 포인트에 대해 일종의 것입니까?

행의 색인을 정의한 다음 값이있는 두 번째 색인을 함께 배열하여 배열의 전체 행을 채울 방법이 있습니까? 이 같은

뭔가 : 나는 당신에게 내가 상상 무슨 생각을주고, 그런 식으로 작동하지 않습니다 알고

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}} 

.

나는 유틸리티의 유형을 제공하는 VB 언어 내가 아는 아무것도 없습니다 내 문제가 이해할 수있는 희망과 당신의 도움 :)

+0

** 오타 ** 경고 : 그것은 ** 칼럼 **입니다 -이 아닌 "coloumn".. –

+0

죄송합니다, 영어는 내 모국어가 아닌 ... – tambenj

답변

0

주셔서 감사합니다. 당신은 확장 메서드를 사용하여 그 구문에 가까워 질 수 있습니다.

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}) 
+0

매력처럼 작동합니다. 고마워요! – tambenj