Visual Studio Code’da Linq ile Pratik Kodlar

Selamlar;

Bugün size özellikle Linq ile kullandığım pratik kod parçaları ile alakalı örnekler göstermek istiyorum:

Başlamadan önce kurulması gereken paketler:

  • Öncelikle Visual Studio Code indirilir.
  • Node.js yok ise https://nodejs.org/en/download/ adresinden indirilir.
  • Eğer kurulu değilse “npm install -g generator-aspnet” generator kurulur .
  • Son olarak makinada yeoman yok ise “npm install -g yo” ile yeoman kurulur.

Visual Studio Code’da çalışmak için, bu uygulamada yeoman generator kullanmıştır. Aşağıda görüldüğü gibi “yo aspnet” komutu yazılıp “Console Application” seçilir. Daha sonra ilgili projenin adı yazılıp proje oluşturulur. Böylece ilgili Console Application, Visual Studio Code ortamı için yaratılmış olunur.

Untitled

İlgili uygulamayı derleme ve çalıştırma:

  • Uygulamada ilgili indirilmesi gereken paketler “dnu restore” komutu ile indirilir.
  • dnu build” komutu ile application derlenir.
  • dnx run” komutu ile de yazılmış Console Application çalıştırılır.

1-) Örnek : Dinamik Array dizileri oluşturmak.

Result

  1. Aşağıdaki örnekte “minusArray” dizisine “Repeat(-1,10)” methodu ile “-1” değeri 10 tekrar ile ilgili diziye atılır.
  2. “positiveArray” dizisine “Range(0,10)”  methodu ile “0”‘dan başlıyarak “9” değerine kadar bir artarak ilgili diziye atılır.
  3. “hunderedArray” dizisine “Range(0,10)” methodu ile “Select(i=>100+10*i)” linq methodu ile “0”‘dan başlayıp “9” değerine kadar bir artan “i” değeri 10 ile çarpılıp 100 değeri ile toplanır. Böylece ilgili diziye degerler 100’den sonra 10’ar 10’ar arttırılarak atılır.

Yukarıdaki resimde ekran çıktısı görülmektedir. Böylece örnek uygulamalar için çeşitli dinamik diziler oluşturulmuş olunur.

2-) Çoklu Dizilerde Tek Bir Döngü ile Öteleme Yapmak:

run

2 farklı dizi için tek bir öteleme yapabilmek için “Concat()” birleştirme methodu kullanılmıştır. Örnek ekran çıktısı yukarıdaki gibidir. 2.yöntemde 2 array “Union” ile birleştirilip “arr3” değişkenine dizi olarak atılıp ekrana yazdırılmıştır.

3-) Random Sayı Dizisi Oluşturma :

Aşağıdaki örnek’de rastgele 8 tane sayı oluşturulmuş ve “randomSeq” değişkenine List olarak atanmıştır.

run2

4-) Düzenli sırada string oluşturmak:

Aşağıda görüldüğü gibi tüm karakterler “Enumerable.Range(0,26)” kullanılarak herbir çekilen integer “i” değeri ile ilgili alfabetik dizi oluşturulmuştur.

row

5-) Integer bir diziyi string bir diziye çevirme:

Eğer elinizde sayısal bir dizi varsa bunu karaktere çevirip string bir değerle birleştirmek isterseniz aşağıdaki “ConvertAll()” methodunu deniyebilirsiniz. Görüldüğü gibi “5” karakteri sayı olarak toplanmamış, var olan string karakterin yanına eklenmiştir.

conv

6-) Geniş çaplı bir sayı aralığında random tek sayılar üretmek: 

Aşağıdaki örnekde görüldüğü gibi “ParallelEnumerable.Range()” methodu ile belli bir sırayı takip etmeyen 1000 tane tek sayı, “oddName” List<int> dizisine atılmıştır. Ayrıca “ParallelQuery<int>” cast işlemi ile her bir Parallel Execution’dan dönen sayı değeri, işleme tabi tutulup tek sayı olup olmadığna bakılmıştır. Ekran çıktısının ufak bir bölümü aşağıdaki gibidir. Ayrıca 20-2000 arasında farklı sırada toplam 1000 tane tek sayı üretilmiştir.

sv

7-) String bir değişken içinde sayısal karakterleri bulma:

Aşağıdaki 2 farklı koddla 1.sinde string karakterler içindeki “ab1k4k67c3” değierindeki, sayısal alanlar “Char.IsDigit()” methodu ile belirlenmiş ve ekrana basılmıştır. 2. örnekde her başvuru formunda kullanılan telefon bilgisine ait girilen string değişkenden, sadece sayısal alanlar “Char.IsDigit” filter ile alınmış ve ekrana basılmıştır.

resim

8-)  Farklı dizilerdeki colonları tek satırda birleştirip yazmak:

Aşağıda görüldüğü gibi 4 farklı dizideki kolon bilgisi tek bir satır olarak “Zip()” methodu kullanılarak birleştirilmiş ve tek bir satır olarak ekrana basılmıştır.

Multicolon

9-) Asp.Net WebForm’da Bir ComboBox’dan Seçili Elemanları Linq İle Belirleme:

Aşağıdaki örnekde bir Asp.Net WebForm’da, secili combobox elemanları linq “where()” filter kullanılarak çekilir. Ve ekrana bastırılır. Burada amaç, webformlar üzerinde birçok element’in durumuna linq ile erişilebildiğini göstermektir.

screen

10-) Bir List Tipini List<A> Başka Bir List Tipine List<B>’ye Dönüştürme :

convert

Elimizde birbirinden türemiş “person” ve “person2” sınıfları olsun. “person2” sınıfından oluşturulmuş bir List<>’e, örnek amaçlı bir oluşturulmuş bir kayıt atılmıştır. “ConvertAll()” methodu ile ilgili liste “List<Person>“‘a convert edilmiştir. Ve ortak olan “Name” ve “SurName” propertyleri Console’a yazdırılmıştır. Böylece “List<Person2>” tipindeki bir liste, kendisinden türemiş olduğu “List<Person>“‘a dönüştürülmüştür.

Böylece geldik bir makalenin daha sonuna. Bu makalede sizin de uygulamalarınız da kullanabileceğiniz küçük Linq kod parçacıkları örnekler ile anlatılmıştır.

Umarım işinize yarar dilekleri ile bir sonraki makalede görüşmek üzere hoşçakalın.

Herkes Görsün:

Sevebilirsin...

4 Yanıt

  1. Kaan dedi ki:

    Hocam dnu ve dnx neden kullanmayı tercih ediyorsunuz? dotnet yeni versiyonu preview 2 neden kullanmıyorsunuz? Stable mi değil?

    • borsoft dedi ki:

      Selam Kaan,

      Yok aslında özel bir sebebi yoktu. Preview2’de gayet başarılı çalışıyor. Bir sıkıntı görmedim. Örneklerde onu da kullanırım.

      İyi çalışmalar.

  2. mehmet dedi ki:

    Teşekkürler

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir