Nie, napisales, ze nie pasuje do funkcjonalnego podejscia, ktore towarzyszylo przy tworzeniu LINQ poniewaz metoda ta polega na efektach ubocznych. Calkowita racja.
W jezyku imperatywnym nie spodziewam sie natomiast ograniczen ze wzgledu, ze cos polega na efektach ubocznych, czyz nie?
C# to język, który został zaprojektowany, tu nie tworzy się spaghetti, bo ktoś uważa, że spaghetti jest fajne. Skoro zaimplementowano zestaw metod, których założeniem jest ZAWSZE zwracać wartość, to nie dokleja się do nich nagle metody, która niczego nie zwraca.
Kolekcje mutowalne mają metodę pozwalającą zmieniać stan obiektów, kolekcje niemutowane jej nie posiadają. Jest to spójne i sensowne.
Skoro moge uzywac skladni:
foreach(var elem in dict) {}, czemu nie moge uzyc metody ForEach?
Możesz użyć, jeśli lubisz, sam też używam. Ale nie twierdzę, że powinna być tam, gdzie jej być nie powinno.
Przeciez C# to nie jezyk funkcyjny, wiec moze ideologozimy na bok odstawimy?
Jakie ideologizmy? Spójność i konsekwencja to podstawy solidnego działania w każdej dziedzinie, nie żadna ideologia.
Gdybym nie musial uzywac tych liczb, to bym wcale sekwencji liczb nie generowal, bo i po co?
No, a w tym przypadku to generowanie nie ma sensu, bo jest tylko przykładem na siłę. Po co je w ogóle pisać? Po co powtórzyłeś po @ne0 ten bezsens?
Nie, postanowilem skrocic za pomoca ForEach jednoczesnie wskazujac, ze budowanie reprezentacji tekstowej powinno byc odpowiedzialnoscia klasy, a nie funkcji Main.
Ale, żeby użyć ForEach musiałeś najpierw użyć ToList. Czyli robisz coś niepotrzebnie, żeby potem zrobić coś "fajnie", zamiast wszystko zrobić najprościej jak się da.
Co do przeciążenia ToString, to jest oczywiste, że tego się powinno użyć, i nie do tego się przyczepiłem. Tylko też nie napisałeś tego jasno w tamtym poście, więc nie każdy musiał zrozumieć. Zwłaszcza nie każdy początkujący.
Moj kod nie jest w C# wedlug czego? Kompilator ma sie z nim dobrze.
Można napisać kod w C# kod C (wszystko public static, globalne zmienne, żadnych klas, itp.), Ty próbujesz chyba przegiąć w drugą stronę.
Anyway... Jak chcecie pisac 10 linijek kodu zamiast 4, ktore robia dokladnie to samo to jest to wasza sprawa.
Natomiast jak mowicie:
#Petla for jest podstawowa konstrukcja programistyczna
#Petla for jest prostsza od wywolania metody
#Zeby skorzystac z mojego kodu trzeba wiedziec co to generyki
#Kod stworzony przy pomocy petli for jest bardziej czytelny czy intuicyjny od tego z wywolaniami metod
Nie mów do mnie w liczbie mnogiej, ja jestem jeden. I nie tworzę durnych przykładów, żeby pokazać jedną metodę z LINQ.
Ad 1. Tak, pętla for to podstawowo konstrukcja C#. Jeśli jej nie znasz, to nie możesz mówić, że znasz choćby podstawy tego języka.
Ad 2. Te rzeczy są w ogóle nieporównywalne, to tak jakby spytać czy lepsza jest pralka czy lodówka.
Ad 3. Żeby korzystać może nie, ale żeby skorzystać świadomie już tak. A korzystanie nieświadome powoduje zazwyczaj stworzenie badziewia.
Ad 4. Zależy jaki kod.
spójrz na to czego uczą na "wstępie do programowania"
Lispa?
A gdzie konkretnie?