Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Bu siteyi Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

Yazılım Makaleleri


0



LINQ - Dönüşüm (Conversion) Örnekleri

Bu makalede bazı örneklerde kullanılan veri kaynağını görmek için tıklayın.

ToArray İle Dizi Elde Etme

ToArray yöntemi, veri kümesinden select bölümündeki seçilen elemanlardan oluşan bir dizi döndürür. Dizinin tipi seçilen elemanların tipinde olacaktır.

Aşağıdaki örnek, öğrenci bilgilerini içeren bir veri kaynağından seçtiği öğrenci isimlerinden bir String dizisi oluşturur ve dizinin elemanlarını çıktıya yazar.

  1. var Ogrenciler = OgrencileriGetir();
  2.  
  3. var OgrenciIsimleri = from Ogrenci in Ogrenciler
  4. select Ogrenci.Adi;
  5.  
  6. string[] OgrenciIsimleriDizisi = OgrenciIsimleri.ToArray();
  7.  
  8. Console.WriteLine("Öğrenci isimleri dizisinin elemanları :");
  9.  
  10. foreach (string Isim in OgrenciIsimleriDizisi)
  11. {
  12. Console.WriteLine(Isim);
  13. }
  14. Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

  1. Öğrenci isimleri dizisinin elemanları :
  2. Tuncay
  3. Jale
  4. Tekin
  5. Mesut
  6. Veli
  7. Ahmet
  8. Fatma
  9. Mehmet
  10. Hale
  11. Ayşe
  12. Cevdet
  13. Nuri
  14. Kenan
  15. Lale
  16. Erhan
  17. Erhan
  18. Erhan

Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir:

  1. var Ogrenciler = OgrencileriGetir();
  2.  
  3. var OgrenciIsimleri = Ogrenciler.Select(Ogrenci => Ogrenci.Adi);
  4.  
  5. string[] OgrenciIsimleriDizisi = OgrenciIsimleri.ToArray();
  6.  
  7. Console.WriteLine("Öğrenci isimleri dizisinin elemanları :");
  8.  
  9. foreach (string Isim in OgrenciIsimleriDizisi)
  10. {
  11. Console.WriteLine(Isim);
  12. }
  13. Console.ReadLine();

ToList İle Genelleyici (Generic) Liste Elde Etme

ToList yöntemi, veri kümesinden select bölümündeki seçilen elemanlardan oluşan bir genelleyici (generic) List sınıfı örneği döndürür. Sınıfın eleman tipi seçilen elemanların tipinde olacaktır.

Aşağıdaki örnek, öğrenci bilgilerini içeren bir veri kaynağından seçtiği öğrenci notları dizilerinden bir List genelleyici listesi oluşturur ve iç içe foreach döngüleri ile listedeki dizilerin elemanlarını çıktıya yazar.

  1. var Ogrenciler = OgrencileriGetir();
  2.  
  3. // IEnumerable<int[]> OgrenciNotlari = from Ogrenci in Ogrenciler
  4. // select Ogrenci.Notlar;
  5. // veya
  6.  
  7. var OgrenciNotlari = from Ogrenci in Ogrenciler
  8. select Ogrenci.Notlar;
  9.  
  10. // List<int[]> OgrenciNotlariListTListesi = OgrenciNotlari.ToList();
  11. // veya
  12.  
  13. var OgrenciNotlariListTListesi = OgrenciNotlari.ToList();
  14.  
  15. Console.WriteLine("List<T> (örnekte List<int[]>) sınıfına kopyalanmış öğrenci notları :");
  16.  
  17. // foreach (int[] Notlar in OgrenciNotlariListTListesi) ...
  18. // veya
  19.  
  20. foreach (var Notlar in OgrenciNotlariListTListesi)
  21. {
  22. // foreach (int Notu in Notlar)
  23. // veya
  24. foreach (var Notu in Notlar)
  25. {
  26. Console.Write("{0} ", Notu);
  27. }
  28. Console.WriteLine();
  29. }
  30. Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

  1. List rnekte List) sınıfına kopyalanmış öğrenci notları :
  2. 75 70 75
  3. 100 95 97 96
  4. 30 40 20
  5. 70 10 30
  6. 80 40 10
  7. 70 80 80
  8. 70 98 97 92
  9. 80 22 97
  10. 20 40 10 30
  11. 100 40 100
  12. 20 0 30 15
  13. 55 75 65
  14. 50 70 80
  15. 20 0 30
  16. 90 90 90 90
  17. 95 70 100 80
  18. 90 55 90

Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir:

  1. var Ogrenciler = OgrencileriGetir();
  2.  
  3. var OgrenciNotlari = Ogrenciler.Select(Ogrenci=>Ogrenci.Notlar);
  4.  
  5. var OgrenciNotlariListTListesi = OgrenciNotlari.ToList();
  6.  
  7. Console.WriteLine("List<T> (örnekte List<int[]>) sınıfına kopyalanmış öğrenci notları :");
  8.  
  9. foreach (var Notlar in OgrenciNotlariListTListesi)
  10. {
  11. foreach (var Notu in Notlar)
  12. {
  13. Console.Write("{0} ", Notu);
  14. }
  15. Console.WriteLine();
  16. }
  17. Console.ReadLine();

ToDictionary İle Sözlük Nesnesi Elde Etme

ToDictionary yöntemi, veri kümesinden verilen bir anahtar alana göre bir Dictionary(TKey, TValue)  koleksiyonu oluşturur. Dictionary sınıfı, bir anahtar alanı kullanarak elemanlarına hızlı biçimde ulaşabileceğimiz bir koleksiyon türüdür.

Aşağıdaki örnek, öğrenci bilgilerini içeren bir veri kaynağından seçtiği öğrenci bilgilerinden, öğrenci numaralarını anahtar olarak kullanan bir Dictionary(int, Kayit) koleksiyonu oluşturur ve listeden arama yaparak bulduğu elemanın bazı özelliklerini çıktıya yazar.

  1. var Ogrenciler = OgrencileriGetir();
  2.  
  3. var Ogrenciler = OgrencileriGetir();
  4.  
  5. var OgrenciNotlariSozlugu = Ogrenciler.ToDictionary(Ogrenci => Ogrenci.No);
  6.  
  7. // veya
  8. // Dictionary OgrenciNotlariSozlugu = OgrenciListesi.ToDictionary(Ogrenci => Ogrenci.No);
  9.  
  10. Kayit BirOgrenciKaydi = OgrenciNotlariSozlugu[14];
  11.  
  12. Console.WriteLine("14 numaralı öğrencinin bazı bilgileri ...");
  13.  
  14. Console.WriteLine("Adı {0} olan bu öğrenci, {1}. sınıfta okumaktadır ve {2} doğumludur.",
  15. BirOgrenciKaydi.Adi,
  16. BirOgrenciKaydi.Sinif,
  17. BirOgrenciKaydi.DogumTarihi.Year);
  18. Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

  1. 14 numaralı öğrencinin bazı bilgileri ...
  2. Adı Mehmet olan bu öğrenci, 4. sınıfta okumaktadır ve 1970 doğumludur.

OfType İle Belirli Bir Tipte Elemanların Listesini Elde Etme

OfType yöntemi, veri kümesinden seçtiği belirtilen tipteki elemanlardan oluşan bir liste döndürür,

Aşağıdaki örnek, bir object[] dizisindeki çift duyarlıklı sayılardan oluşan bir liste döndürür ve listenin elemanlarını çıktıya yazar.

  1. object[] Degerler = { 3.0, null, "beş", 3, "dört", 5, "altı", 7.1 };
  2.  
  3. var CiftDuyarliklilar = Degerler.OfType<double>();
  4.  
  5. Console.WriteLine("Dizide çift duyarlıklı (double) olarak tutulan değerler :");
  6.  
  7. foreach (var Deger in CiftDuyarliklilar)
  8. {
  9. Console.WriteLine(Deger);
  10. }
  11. Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

  1. Dizide çift duyarlıklı (double) olarak tutulan değerler :
  2. 3
  3. 7,1

Kaynak:
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b



Diğer LINQ Makaleleri: