vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest poniedziałek, 29 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Kopiowanie kolekcji


otwartyotwarty rozpoczął: ziggiz postów: 2



napisał: admin
postów: 613


umieszczony:
12 lipca 2012
11:05

  
Witam,

Jesli chcesz operowac na nowej kolekcji, zawierajacej kopie obiektow, musisz te obiekty skopiowac:

For Each oB In colKolekcja_ini
    Set clObiekt = New clKlasa
    clObiekt.Wlasciwosc1= oB.Wlasciwosc1
    clObiekt.Wlasciwosc2= oB.Wlasciwosc2
    '...
    colKolekcja.Add clObiekt
Next oB

napisał: ziggiz
postów: 1


umieszczony:
12 lipca 2012
00:19

  
Witam,

mam następujący problem i od jakiegoś czasu nie mogę znaleźć w sieci śladu rozwiązania.
Postaram się opisać zagadnienie słownie, ponieważ kod jest dość obszerny i zagmatwany... ale do rzeczy

1. Deklaruję klasę (właściwości i metody) clObiekt
2. Korzystając z zewnętrznego źródła danych inicjuję kolekcję colKolekcja składającą się obiektów clObiekt
3. Wykorzystując tę kolekcję przetwarzam poszczególne jej elementy i dodaję kolejne obiekty.
4. pkt2-3 wykonywane są n-razy

Problem polega na tym, że inicjacja kolekcji w pkt2 musi być wykonywana n-razy i chciałbym zoptymalizować kod np poprzez zapamiętanie całej kolekcji w jakiejś zmiennej i tylko kopiować kolekcję zamiast ją inicjować danymi źródłowymi.

Oczywiście rozwiązanie(1) typu:

Set colKolekcja = colKolekcja_ini
(zastosowane pod koniec pkt2) powoduje utworzenie referencji a nie skopiowanie całej początkowej zawartości kolekcji, co skutkuje tym, że wszelkie zmiany wykonane w colKolekcja są odwzorowane w colKolekcja_ini.

Próbowałem, też przekopiować kolekcję przypisując element po elemencie

for each clObiekt in Kolekcja_ini

kolekcja.add item:clObiekt

next clObiekt

Pomijając wątpliwy uzysk na czasie wykonywania tej operacji... efekt jest taki sam jak przy rozwiązaniu (1)

Czy istnieje jakieś rozwiązanie pozwalające przekopiować kolekcję do innej zmiennej bez tworzenia referencji?
Będę wdzięczny za podpowiedź :)
pozdrawiam


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z