2012-03-12 39 views
0

首先,這不是一個問題,但更像是一個測驗。我有3個數組,我將從數據集中加載數據,將來這組數據可能會擴展並且代碼會變得過長,我如何使用循環加載數據,而不使用其他數組?使用循環加載數組

Dim ds as dataset = objDashBoardStats.DashBoard_TotalSales_Static_Get(objDashBoardStats) 

       Dim statvals(11) As Integer 
       statvals = LoadData(statvals, ds.Tables(0)) 

       Dim statvalsMen(3), statvalsWomen(3), statvalsUnknown(3) As Integer 

       statvalsMen(0) = statvals(0) 
       statvalsWomen(0) = statvals(1) 
       statvalsUnknown(0) = statvals(2) 
       statvalsMen(1) = statvals(3) 
       statvalsWomen(1) = statvals(4) 
       statvalsUnknown(1) = statvals(5) 
       statvalsMen(2) = statvals(6) 
       statvalsWomen(2) = statvals(7) 
       statvalsUnknown(2) = statvals(8) 
       statvalsMen(3) = statvals(9) 
       statvalsWomen(3) = statvals(10) 
       statvalsUnknown(3) = statvals(11) 

回答

0

我不知道VB明確,但它應該是與此類似:

int max = statvals.size; //just get the amount of indexes in statvals. max%3 should be 0 
for(int i=0; i<max; i+=3) 
{ 
    statvalsMen(i/3) = statvals(i); 
    statvalsWomen(i/3) = statvals(i+1); 
    statvalsUnknown(i/3) = statvals(i+2); 
} 
+0

修復與'statvalsMen(I/3)',使得它在增加每三個迭代。 – ja72 2012-03-12 06:01:42

+0

謝謝,忘記了。我也會把它放在地板上(I/3),但我不確定C是否有這個問題(我是Java/C#人員) – 2012-03-12 23:51:39

0

循環從數據集,而不是使用其它的陣列(假定會有同等數量的記錄表中的男性,女性和未知的問題表示)...

Dim intTotalPerCategory As Integer = ds.Tables(0).Rows.Count/3 

    Dim statvalsMen(intTotalPerCategory), statvalsWomen(intTotalPerCategory), _ 
     statvalsUnknown(intTotalPerCategory) As Integer 

    For i = 0 To (ds.Tables(0).Rows.Count - 1) Step 3 

     'Change "NameOfColumn" to the correct column name or ordinal number. 
     statvalsMen(i) = CInt(ds.Tables(0).Rows(i).Item("NameOfColumn")) 
     statvalsWomen(i + 1) = CInt(ds.Tables(0).Rows(i).Item("NameOfColumn")) 
     statvalsUnknown(i + 2) = CInt(ds.Tables(0).Rows(i).Item("NameOfColumn")) 

    Next 
+0

您的問題要求提供不使用其他陣列的解決方案。只要LoadData不只是將數據集中的表中的字段加載到數組中,該解決方案將工作...如果它執行額外的處理來加載該數組,則必須從數組中循環(或者改變你的LoadData方法)。 – N0Alias 2012-03-12 03:18:49