eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming.Net Dictionary (System.Collections) problem z wyszukiwaniem... › Re: .Net Dictionary (System.Collections) problem z wyszukiwaniem...
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Marcin Kral <k...@p...na-onecie.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: .Net Dictionary (System.Collections) problem z wyszukiwaniem...
    Date: Wed, 19 Aug 2009 19:39:07 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 43
    Message-ID: <h6hdbu$5ge$1@inews.gazeta.pl>
    References: <h69vck$rq2$1@inews.gazeta.pl> <h6agjg$g06$1@inews.gazeta.pl>
    <h6h9cg$gk9$1@inews.gazeta.pl>
    NNTP-Posting-Host: cfs151.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1250703550 5646 83.30.220.151 (19 Aug 2009 17:39:10 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 19 Aug 2009 17:39:10 +0000 (UTC)
    X-User: kralm
    In-Reply-To: <h6h9cg$gk9$1@inews.gazeta.pl>
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715
    Thunderbird/3.0b3
    Xref: news-archive.icm.edu.pl pl.comp.programming:183309
    [ ukryj nagłówki ]

    W dniu 2009-08-19 18:31, Marcin Połeć pisze:
    > Bartek Etenkowski<n...@c...cz> napisał(a):
    >> na pierwszy rzut oka to problem moĹźe byÄ? z robieniem wielu konkatenacji
    >> (o ile Check(s) wiele razy zwraca prawdÄ?). SprĂłbuj tak:
    >>
    >> StringBuilder result = new StringBuilder();
    >> foreach (string s in kombinacje)
    >> if (Check(s))
    >> {
    >> result.Append(s);
    >> result.Append(", "); // albo zamiast tych dwĂłch
    >> result.AppendFormat("{0}, ", s);
    >> }
    >> ret = result.ToString();
    >>
    >> Powinno byÄ? szybciej. Nie kompilowaĹ?em tego, metoda ctrl+c, ctrl+v
    >> dziaĹ?aÄ? nie musi. :)
    >>
    >> Pozdrawiam,
    > znacznego przyspieszenia nie odnotowałem, średni czas przeszukiwania wciąż
    > jest około 17sekund

    Generalnie to jak juz wyzej poradzono lepiej skupic sie na zlozonosci
    algorytmu. To tutaj to kwestie implementacyjne. Jakkolwiek, dla duzej
    liczby konkatenacji StringBuilder jest wydajniejszy. Jezeli funkcja go
    uzywajaca jest czesto wolana to warto StringBuildera tworzyc raz i
    odpalac clear() na poczatku funkcji go uzywajacej. (Chodzi o
    zmniejszenie liczby alokacji). Inna sprawa - jezeli chcesz bawic sie w
    takie drobnostki - zamiast foreach uzyj zwyklego for.
    np.

    int liczbaKombinacji = kombinacje.Count;
    string s = String.Empty;

    for(int i = 0; i < liczbaKombinacji; i++)
    {
    s = liczbaKombinacji[i];
    // operacje na s
    }

    --
    Pozdrawiam
    Marcin Kral

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: