VBA에서 두 개의 컬렉션을 병합하는 가장 효율적인 방법은 무엇입니까? 그래서 처음 두 컬렉션의 모든 항목을 포함하는 세 번째 컬렉션이 있습니까?VBA에서 두 개의 컬렉션을 병합하는 방법은 무엇입니까?
답변
읽기 this article, 좋아.
결론 : 배열을 반복하는 루프 For
- 사용.
- 컬렉션을 반복하려면
For Each
루프를 사용하십시오.
그래서, For Each
루프를 사용하여 컬렉션을 반복하고 3 번째 컬렉션이 루프 Add
항목이다.
환상적인, 그래서 당신이 대답을 알고 있다고 생각하더라도 게시해야합니다! 나는 For ... Each는 컬렉션의 순서가없는 특성을 이용하고, For i = 1 to Count는 맵을 여러 번 조회해야하기 때문에 이것이라고 생각합니다. – Greedo
컬렉션을 병합하여 항목을 반복하고 새 컬렉션 또는 원본 컬렉션 중 하나에 컬렉션을 추가 할 수 있습니다. 이 비록 2 컬렉션의 키를 보존하지 않습니다 - 당신이 원하는 경우에 당신이 컬렉션을 사용할 수
다른 Collection
col1
에 Collection
col2
의 항목을 추가하고 새로운 병합 Collection
을 반환하려면 :
Function mergedCollection(ByVal col1 As Collection, ByVal col2 As Collection) As Collection
'Add items from col2 to col1 and return the result
'ByVal means we are only looking at copies of the collections (the values within them)
'The function returns a NEW merged collection
Dim i As Long
For i = 1 To col2.Count
col1.Add col2.item(i)
Next i
Set mergedCollection = col1 'set return value
End Function
직접
col1
에
col2
을 추가 할 수
Sub mergeCollectionsInPlace(ByRef col1 As Collection, ByVal col2 As Collection)
'Routine to add items from col 2 directly to col1
'ByRef col1 means we are adding directly to the original col1
'Routine doesn't return a new collection, it just appends col2 to col1
Dim i As Long
For i = 1 To col2.Count 'loop through each item in collection 2
col1.Add col2.item(i) 'add the item at index i to collection 1
Next i
End Sub
(
col1
이 변경됩니다)
를 사용하여 각 오브젝트 컬렉션을 반복 할 때, 대를 배열이 반복되는 경우 For
For Each
대 루프를 비교
Dim col3 As Collection
Set col3 = mergedCollection(col1, col2) 'sets col3 to be the merge of the two collections
mergeCollectionsInPlace(col1, col2) 'sets col1 to be the merge of the two collections
'For' 루프를 사용하여 콜렉션을 반복하는 것이 * 가장 효율적인 방법이 될 수 없습니다 *. –
- 1. Magento : Observer 내부에서 두 개의 컬렉션을 병합하는 방법은 무엇입니까?
- 2. 컬렉션을 레일에 병합하는 방법은 무엇입니까?
- 3. 두 개의 컬렉션을 하나로 병합하는 방법
- 4. DataGrid에서 서로 다른 두 개의 관찰 가능 컬렉션을 병합하는 방법
- 5. 두 개의 java.util.Properties 객체를 병합하는 방법은 무엇입니까?
- 6. 두 개의 쿼리를 병합하는 방법은 무엇입니까?
- 7. 두 개의 FBO를 병합하는 방법은 무엇입니까?
- 8. facebook에서 두 개의 앱을 병합하는 방법은 무엇입니까?
- 9. 두 개의 RenderTargetBitmap 인스턴스를 병합하는 방법은 무엇입니까?
- 10. iPhone에서 두 개의 UITextView를 병합하는 방법은 무엇입니까?
- 11. 두 개의 BST를 효율적으로 병합하는 방법은 무엇입니까?
- 12. 두 개의 csr_matrix를 하나로 병합하는 방법은 무엇입니까?
- 13. 두 개의 웹 프로젝트를 병합하는 방법은 무엇입니까?
- 14. 두 개의 GitHub repos를 병합하는 방법은 무엇입니까?
- 15. Laravel5에서 두 개의 게시물을 병합하는 방법은 무엇입니까?
- 16. 두 개의 MySQL 데이터베이스를 병합하는 방법은 무엇입니까?
- 17. Java에서 두 개의 GIF를 병합하는 방법은 무엇입니까?
- 18. Java에서 두 개의 배열을 병합하는 방법은 무엇입니까?
- 19. plist에서 두 개의 배열을 병합하는 방법은 무엇입니까?
- 20. 두 개의 카산드라 클러스터를 병합하는 방법은 무엇입니까?
- 21. 중간에 두 개의 발전기를 병합하는 방법은 무엇입니까?
- 22. 두 개의 priority_queue를 병합하는 방법은 무엇입니까?
- 23. 두 개의 컬렉션을 동시에 쿼리하는 방법은 무엇입니까?
- 24. 열거 두 개의 컬렉션을
- 25. 두 테이블을 병합하는 방법은 무엇입니까?
- 26. 두 그룹을 병합하는 방법은 무엇입니까?
- 27. 병합하는 두 개의 UInavigationcontroller
- 28. Android에서 두 개의 이미지를 병합하는 데 Canvas를 사용하는 방법은 무엇입니까?
- 29. 두 개의 열을 합산하여 하나의 열로 병합하는 방법은 무엇입니까?
- 30. 두 개의 동일한 데이터베이스 데이터를 하나로 병합하는 방법은 무엇입니까?
배열이 더 효율적일 때 컬렉션을 병합하는 가장 효율적인 방법을 찾고있는 이유는 무엇입니까? –
@FlorentB. 그게 내 데이터가 저장되는 방법이고, 내가 가지고있는 것과 함께해야만합니다! 그러나 내가 이것을 묻는 메시지를 표시하는 응용 프로그램에서 컬렉션을 사용하고 있습니다. 컬렉션에서 * 더 효율적이라고 생각하는 배열을 지속적으로 추가/제거하고 있기 때문입니다. 또는 당신이 말한 것은 변형을 배열에 쓰는 것이 콜렉션에 다시 쓰는 것이 합병의 효율적인 방법이된다면, 꼭 모든 것을 게시하고 벤치 마크 할 수 있습니다! – Greedo
어레이는 추가/제거시에도 수집보다 효율적입니다. –