Merhaba, bugün bahsedeceğim örnek kod, konularına tam anlamıyla hakim olduğum bir kod değil fakat bazı araştırmalar ve okumalar yaparak belli bir yere kadar ilerleme kaydettim ve bu kodu yazabildim. Bir sıkıntımız daha var ki, bu kodu yazmayı ve araştırmalarımı 8 Aralık 2019 Pazar günü tamamlamama rağmen yazısını bugün yani 26 Ocak 2020 Pazar günü yazabiliyorum. Açıkçası kodun ayrıntılarını maalesef unutmuşum. Şimdi sizlere anladığım ve hatırladığım kadarını aktarmaya çalışacağım.
Challenge Türü: Easy
Detaylar

Kodumuz

- 2. satırda System.Linq kütüphanesi kullanılmalı. Kullanılmazsa 13. satırdaki, dizi elemanlarının büyükten küçüğe doğru sıralanması için kullandığımız OrderByDescending kodu çalışmaz. LINQ sorgusu hafızadaki (veya bir veri kaynağındaki) veri kümesinden program içinde SQL gibi sorgulama yaparak, seçilen verilerden oluşan yeni bir liste elde etmemizi sağlar. Linq hakkında daha fazla detay için bakabilirdiniz -> http://yazilim.cevapsitesi.com/Makaleler/5/linq-language-integrated-query-dile-entegre-edilmis-sorgu-nedir
- 9. satırda kullandığım ayrac dizisini, yani bölmek istediğim cümledeki sözcükleri birbirinden ayıracak olan sembolleri ve boşluklarları tek tek kendim yazmak durumundayım. Buna maalesef alternatif bir çözüm bulamadım. Sıkıntı şu ki, benim orada tüm karakterleri yazmam mümküd değil ve benim yazmadığım bir sembol ile karşılaşılırsa kelimeleri ayrıması mümkün olmayacak. Örneğin kod ekrandan merhaba%okuyucu şeklinde bir girdi alsın. Bu yadığım kodda % sembolü bir ayraç olarak ifade edilmediği için buradaki merhaba ve okuyucu kelimeleri seçilemeyecek. Bunun yerine merhaba%okuyucu yu tek bir kelime olarak alacak. Bu satırdaki kod hatalı değil fakat eksiktir.
- 10. satırda bir önceki yazımda da bahsettiğim .Split ifadesi yer alıyor. .Split() ifadesinde parantez içine yazdığımız şeyler bizim ayraçlarımız/bölücülerimiz oluyor. Kodumuz parantez içinde ne varsa, istenileni o ifadeyi gördüğü zamanlarda bölerek bir dizi haline getiriyor.
- 13. satırda OrderByDescerding kodu sayesinde dizimizin elemanlarını büyükten küçüğe sıralayabiliyoruz. (Bu arada büyükten küçüğe, uzundan kısaya için Descending; küçükten büyüğe, kısadan uzuna için Ascending kullanılır.)
Kodun Çıktısı

Hatalar

- Hatalı kodda 10. satır, ana kodda 13. satırda olan First() ifadesinin neden yazıldığına tam olarak hakim değilim fakat ortadan kaldırdığımızda aşağıdaki gibi bir hata veriyor. Anladığım kadarıyla En büyükten en küçüğe(en uzundan en kısaya) doğru sıraladığımız sözcük dizimizde tek bir elemanı seçip döndürmemiz geremiyor, bu da en uzun sözcük olan dizinin ilk eleman olduğu için First() ifadesi kullanılıyor. (asaba Last() gibi (dizinin son elemanı) ifadeler de var mı, kullanılıyor mu?)






