2012-10-30 49 views
0

您好,我正在使用結構和集合進行第一步,我創建了2個使用相同結構的集合。2個集合同時循環

一個集合包含今年和另一個的數據。

是否有可能它同時遍歷兩個?

Structure dateControl 

    Dim StartDate As Date 
    Dim EndDate As Date 
    Dim weekCount As Integer 
    Dim YearWeek As Integer 

End Structure 

Dim LastYearStruct As dateControl 

    For I = 1 To howmanyweeks 

     LastYearStruct.StartDate = DateAdd(DateInterval.WeekOfYear, I - 1, dateFirstSunday) 
     LastYearStruct.EndDate = DateAdd(DateInterval.Day, 7, LastYearStruct.StartDate) 
     LastYearStruct.weekCount = I 
     LastYearStruct.YearWeek = I 

     lastYear.Add(LastYearStruct) 

    Next 

Dim ThisYearStruct As dateControl 

    For I = 1 To howmanyweeks 

     ThisYearStruct.StartDate = DateAdd(DateInterval.WeekOfYear, I - 1, dateFirstSunday) 
     ThisYearStruct.EndDate = DateAdd(DateInterval.Day, 7, ThisYearStruct.StartDate) 
     ThisYearStruct.weekCount = I 
     ThisYearStruct.YearWeek = I 

     ThisYear.Add(ThisYearStruct) 

    Next 

我試圖像

每個東西thisyear和lastyear

debug.print事情

下一個

感謝您的幫助

+0

如果他們有相同數量的項目則只是環上整數,是指按順序給他們帶來了。 – Paparazzi

回答

1

你可以同時手動迭代集合。

Dim lastYearEnumerator = lastYear.GetEnumerator() 
    Dim thisYearEnumerator = ThisYear.GetEnumerator() 
    Do While lastYearEnumerator.MoveNext AndAlso thisYearEnumerator.MoveNext 
     Dim lastYearThing = lastYearEnumerator.Current 
     Dim thisYearThing = thisYearEnumerator.Current 

     ' do stuff with things 
    Loop 

這將遍歷兩個集合,直到達到任一集合的末尾。

+0

這兩個方法都可以工作,但是我認爲我錯過了某些東西,我如何從lastYearThing中獲取StartDate變量?我一直在尋找,但不能確定,但​​如果我插入一個斷點,並彈出工具提示,我可以擴展到變量如此簡單? – user1633322

+0

不要爲什麼,但intellisense沒有給我的變量名稱手動鍵入他們,它的作品非常感謝大家。 – user1633322

1

只需使用for循環

For i As Integer = 1 To lastYear.Length 
    Dim lastYearThing = lastYear(i) 
    Dim thisYearThing = thisYear(i) 
    ' ... 
Next