Funkcja Array.Sort sortuje tablicę elementów. Niestety algorytm jest niestabilny co nie zawsze jest dobrym rozwiązaniem. Rozważmy poniższy kod:publicclass Person { publicint Age { get; set; } publicstring Name { get; set; } } internalclass Program { publicstaticvoid Main() { var persons =new[] { new Person { Age =1, Name ="a" }, new Person { Age =2, Name ="b" }, new Person { Age =3, Name ="c" }, new Person { Age =2, Name ="e" }, new Person { Age =1,...
Sztuka programowania 4279 dni, 15 godzin, 45 minut temu 136 źrodło rozwiń
Czas na małe szaleństwo z interfejsami, łączeniem konstruktorów, przesłanianiem metod i metodami rozszerzającymi! Wyobraźmy sobie, że mamy tablicę własnych obiektów np samochodów. Chcemy posortować te samochody raz po identyfikatorze, raz po prędkości maksymalnej, a jeszcze innym razem według koloru. Jest to bardzo proste dzięki zastosowaniu interfejsu IComparer (zdefiniowany w System.Collections). Przy okazji skorzystamy z pozostałych wcześniej wymienionych technik. Należy pamiętać że stosowan...
Sztuka programowania 4505 dni, 10 godzin, 18 minut temu 200 źrodło rozwiń
Zrobiłem mały test. Chciałem sprawdzić co jest wydajniejsze, LINQ czy użycie IComparera. Odpowiedź: "to zależy?" Na początek zrobiłem małą klasę obiektu do testowania, która wyglądała tak: Następnie w głównej pętli programu napisałem następujący kod: static void Main(string[] args) { string name = "Mr. Tomek"; Random r = new Random(); int size = 50; Stopwatch stopWatch = new Stopwatch(); while (size < repeats;="" ++a)="" {="" person[]="" people1="new" person[size];="...
Sztuka programowania 4505 dni, 10 godzin, 18 minut temu 132 źrodło rozwiń
Załóżmy, że mamy tabelę z kolumną typu VARCHAR(2500), a w niej sporo wierszy. Wynik zapytania z tej tabeli chcielibyśmy posortować według wspomnianej kolumny. Oczywiście będzie to bardzo czasochłonne, a tym samym słabo wydajne. Jak sobie z tym poradzić?
Bazy danych i XML 4596 dni, 28 minut temu 183 źrodło rozwiń
Coraz częściej w projektach zaczynam używać LINQ i zaczynam dostrzegać zalety. Nie dość, że można w ten sposób trochę pisania kodu oraz zyskać na przejrzystości. Poniżej zamieszczę parę przykładów, w których pomału przerzucam się na LINQ.
Od czasu do czasu mam w zwyczaju przeglądać cały swój kod i w razie potrzeby robić jego refaktoryzację, tak też się stało tydzień temu kiedy stwierdziłem, że zamiast dopisywać nową funkcjonalność do projektu Silverlight, doprowadzę do porządku to co już stworzyłem. Podczas przeglądania kodu, natrafiłem na taką o to extension method
Dzisiaj kontynuacja zmagań z asp’ową kontrolką ListView. Jak głosi tytuł wpisu, będzie on traktował o podziale danych na strony oraz o sortowaniu. Stronicowanie Zacznę więc od dzielenia wierszy na strone, co okazało się proste i przyjemne. ASP.NET daje nam do dyspozycji kontrolkę DataPager która właściwie w całości zajmuje się problemem stronicowania. Wystarczy, że w DataPagerze ustawimy odpowiedni PagedControlID(gdy wstawimy ją wewnątrz LayoutTemplate’a, odpowiednie ID zostanie przydzielone automatyczni...