As you may already know I really, really like LINQ. One day I'll probably join together all my posts about this incredible featureand release pretty neat compendium/one-oh-one about this great feature. But while I'm not sitting and joining every post from this blog that have word "LINQ" in it into one, big pile, let's talk a bit about joining and grouping collections in LINQ.
Sztuka programowania 2872 dni, 13 godzin, 50 minut temu 129 źrodło rozwiń
Przy okazji konferencji PolCaster 2016 (na której byłem w zeszłym roku) usłyszałem dość interesującą informację, a mianowicie: statystycznie podcast kończy się po 7/8 odcinku. Później następuje wypalenie, lub brak pomysłów i bum…koniec. O ironio mój podcast również przez chwile mógł wydać się kolejnym kandydatem do zamknięcia, ale tak jak zapowiadałem w podsumowaniu roku… POWRÓCIŁ! Nie będę się tu zagłębiał i rozpisywał nad przyczynami tak sporej przerwy (bo trwa ona on września), ale z tego miejsca wszy...
Aggregate is one of the most fun and powerful methods in LINQ. Sadly it's also of of the most underused and "scary" ones. I hope that after reading this post you will understand Aggregate a bit more, know when to use it and won't be afraid of doing so.
Sztuka programowania 2895 dni, 2 godziny, 45 minut temu 261 źrodło rozwiń
...oto jest pytanie! Po długiej przerwie w pisaniu postaram się Wam na nie odpowiedzieć. Co dzieje się w momencie użycia tej metody? Kiedy powinniśmy z niej korzystać, a kiedy możemy to sobie odpuścić? Oczywiście nie będę w stanie przeanalizować każdej możliwej sytuacji, ale mam nadzieję, że po dzisiejszej lekturze będziecie korzystać z tej metody w pełni świadomie.
Sztuka programowania 2940 dni, 1 godzinę, 53 minuty temu 415 źrodło rozwiń
Kontynuując wątek LINQ, który podjąłem jakiś czas temu, poruszę dziś temat optymalizacji operacji jakie wykonujemy na kolekcjach. Na starcie muszę się przyznać, że tytuł nie jest do końca zgodny z prawdą, bo trzy słowa to o wiele za mało, by wejść w głębiej w temat optymalizacji zapytań. Są jednak 3 metody, które można wykorzystać do znacznego przyspieszenia wykonywania operacji w bardziej rozbudowanych łańcuchach przy minimalnym nakładzie pracy.
Jak już wspominałem, uwielbiam LINQ. Z każdym razem gdy go używam odrobinę bardziej. Ale nie każdy pała do LINQ równie wielką miłością co ja i pojawiają się różne argumenty przemawiające przeciw korzystaniu z tej funkcjonalności w wielu przypadkach, również w takich gdzie znacznie ułatwiłoby to nam życie. Jednym z takich argumentów jest trudność w debugowaniu długich łańcuchów metod w LINQ oraz utrudniona obsługa błędów. Dziś pokażę Wam, że wcale nie jest to tak wielkim problemem.
Sztuka programowania 3005 dni, 6 godzin, 33 minuty temu 378 źrodło rozwiń
LINQ jest funkcjonalnością, która zainteresowała mnie w C# praktycznie od początku mojej styczności z tym językiem. Jest to narzędzie naprawdę potężne i w odpowiednich rękach może bardzo usprawnić działanie aplikacji i zwiększyć czytelność kodu. Sęk w tym, że o ile łatwo pisze się wszelkiego rodzaju Selecty, Whery i ToListy, to fajnie byłoby jeszcze wiedzieć co, kiedy i dlaczego dzieje się z naszymi danymi w troskliwych, zero-jedynkowych łapkach LINQ.
Sztuka programowania 3026 dni, 6 godzin, 7 minut temu 238 źrodło rozwiń
Jeszcze bardziej dynamiczne tworzenie zapytań do bazy (LinqKit)! Czyli trochę o tym jak łączyć ze sobą wiele wyrażeń filtrujacych.
Sztuka programowania 3092 dni, 5 godzin, 56 minut temu 317 źrodło rozwiń
Czasem może nas spotkać sytuacja, że bardzo potrzebujemy stworzyć zapytanie do Entity Framework, które musi dynamicznie reagować na nasze wymagania i w jednym konkretnym przypadku będzie potrzebowało dodatkowego Where(). Oczywiście, możemy napisać oddzielne zapytania i warunek, ale istnieje odrobinę sprytniejszy sposób.
Sztuka programowania 3094 dni, 6 godzin, 1 minutę temu 287 źrodło rozwiń
Dzisiaj podstawy, ale wcześniej nie miałem potrzeby skorzystania z funkcji GroupJoin. Myślę, że prosty przykład jest najlepszą dokumentacją. Dosyć częstą używaną funkcją jest GroupBy. Jeśli mamy np. listę zamówień w postaci (IdCustomer, Name), wykonując GroupBy na IdCustomer otrzymamy słownik, gdzie kluczem jest identyfikator zamówienia, a wartością lista zamówień danego klienta. GroupJoin, jak sama nazwa sugeruje jest połączeniem Join z GroupBy. Załóżmy, że mamy nast...
Bazy danych i XML 3196 dni, 18 godzin, 28 minut temu 170 źrodło rozwiń
Napisany przez paweltymura on I pisząc wszyscy nie wyłączam z tego siebie W artykule w którym zamieniam foreach na Linq robiąc mały refaktoring dostałem dużą ilość feedbacku zwłaszcza od kolegi Revisa. Dzięki bardzo! Serce rośnie jak ktoś się interesuje. W pracy natomiast mam takiego swojego guru – programistę, który skwitował nasze (moje i Revisa) końcowe wypowiedzi "... ale Wy głupoty gadacie". I się zaczęło.
Sztuka programowania 3222 dni, 5 godzin, 8 minut temu 673 źrodło rozwiń
Napisany przez paweltymura on Ponieważ mam tą przyjemność refactorować czasem naprawdę stary kod (z czasów .NET 1) to trafiam na takie fajne fragmenty “jak to się robiło kiedyś”. Kod który jest pod moją opieką staram się poprawiać, testować i upraszczać używając najnowszych sztuczek. Do kodu!
Sztuka programowania 3231 dni, 19 godzin, 24 minuty temu 438 źrodło rozwiń
Short explanation of difference between expressions and functions in .NET
Sztuka programowania 3313 dni, 20 godzin, 10 minut temu 386 źrodło rozwiń
Wiele osób pewnie już od dawna korzysta LINQPad. Osobiście nigdy nie miałem okazji korzystać z tego narzędzia i zawsze myślałem, że w przypadku TDD jest ono po prostu zbędne. Ostatnio jednak zainstalowałem z ciekawości i okazało się bardzo przydatne w przypadku testowania krótkich snippet’ów. Czasami chcę sprawdzić tylko np. formatowanie daty i wtedy zwykle uruchamiałem osobną instancję Visual Studio, immediate windows w VS albo po prostu pisałem konkretny test. Nie zawsze jednak jest to wygodne i prak...
Sztuka programowania 3395 dni, 7 godzin, 6 minut temu 370 źrodło rozwiń
Analiza kodu za pomocą LINQ to chyba esencja Roslyn. Bez Roslyn, kod był dla nas jak zwykły tekst (string) i w przypadku jakiejkolwiek analizy, musieliśmy sami parsować tekst i rozpoznawać odpowiednie fragmenty....
W architekturze WinRT możemy korzystać z dwóch bardzo przyjemnych kontrolek do prezentacji danych - ListView oraz GridView. Obie te kontrolki mają duże możliwości konfiguracyjne, posiadają sporo zdarzeń i można je również fajnie ostylować. Jednym słowem jest naprawdę dobrze;-) Naszą piękną, idealistyczną sielankę może jednak w łatwy sposób zakłócić, pewien dość prozaiczny problem, który nazywa się nadmiar danych. Tego rodzaju sytuacja zasadniczo nie ma żadnych pozytywów. Nasza aplikacja pochłonie duże il...
Sztuka programowania 3463 dni, 4 godziny, 2 minuty temu 168 źrodło rozwiń
Enum jest bardzo pożyteczną konstrukcją, której używam praktycznie w każdym, nawet najmniejszym projekcie. Enumeracja ma praktycznie same zalety - przede wszystkim pozwala na definiowanie stałych wartości, które później można łatwo użyć w dowolnym miejscu w naszym kodzie. Jak na razie wszystko jest jasne i oczywiste. Mniej znaną właściwością enumów jest praca w trybie flagi, dzięki czemu enumeracja dostaje dodatkowego kopa;-) Przykład umieszczony w dalszej części tekstu pokaże jakie może to przynieść kor...
Sztuka programowania 3516 dni, 7 godzin, 41 minut temu 382 źrodło rozwiń
strona głównakategorieo blogurssLINQ to ExcelBartosz Lewandowski, 2015-02-11 23:48:30kategoria: C# Dostęp do arkusza programu Excel poprzez mechanizmy bazy danych był już opisywany na łamach naszego bloga. Oprócz wykorzystania mechanizmów OleDB, możemy odpytywać arkusz Excel poprzez technologię LINQ to Excel. Oczywiście wykonamy to w Visual Studio i C#. Pierwszym krokiem jest dodanie do projektu bibliotek LINQ To Excel. Wybieramy więc w Visual Studio opcję Tools -> Library Package Manager -> Package ...
Sztuka programowania 3579 dni, 4 godziny, 5 minut temu 206 źrodło rozwiń
„Linq to Object” jest bardzo dobrze wyposażonym mechanizmem. Posiada wiele metod, które generalnie pokrywają 70% potrzeb podczas projektowania aplikacji. Jednak czasami potrzebujemy tych 30%, których nie ma. Poniżej pokazuje jak napisać własną metodę rozszerzeń (extension method) do Linq To Object na przykładzie autorskiej metody SplitIntoParts. Aby napisać dobrą metodę rozszerzeń należy spełnić kilka warunków...
Sztuka programowania 3618 dni, 15 godzin, 2 minuty temu 183 źrodło rozwiń
Nie ma się nad czym zbytnio rozwodzić, ponieważ MoreLINQ jest biblioteką, która po prostu rozszerza podstawowe LINQ o dodatkowe operatory. Ja najczęściej korzystam z DistinctBy(), MinBy() oraz MaxBy(). Takie rozszerzenie nie tylko oszczędza mi czas, ale również sprawia, że kod jest „czystszy” i np. to co napisałbym w 3 linijkach mam w jednej – krótkiej i jasnej. Z pełnym przekonaniem polecam! Znacie coś podobnego, co rozszerza nam LINQ o jeszcze inne operatory?