Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
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.
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.

var Ogrenciler = OgrencileriGetir();

var OgrenciIsimleri = from Ogrenci in Ogrenciler
                      select Ogrenci.Adi;

string[] OgrenciIsimleriDizisi = OgrenciIsimleri.ToArray();

Console.WriteLine("Öğrenci isimleri dizisinin elemanları :");

foreach (string Isim in OgrenciIsimleriDizisi)
{
    Console.WriteLine(Isim);
}
Console.ReadLine();

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

Öğrenci isimleri dizisinin elemanları :
Tuncay
Jale
Tekin
Mesut
Veli
Ahmet
Fatma
Mehmet
Hale
Ayşe
Cevdet
Nuri
Kenan
Lale
Erhan
Erhan
Erhan

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

var Ogrenciler = OgrencileriGetir();

var OgrenciIsimleri = Ogrenciler.Select(Ogrenci => Ogrenci.Adi);

string[] OgrenciIsimleriDizisi = OgrenciIsimleri.ToArray();

Console.WriteLine("Öğrenci isimleri dizisinin elemanları :");

foreach (string Isim in OgrenciIsimleriDizisi)
{
    Console.WriteLine(Isim);
}
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.

var Ogrenciler = OgrencileriGetir();

// IEnumerable<int[]> OgrenciNotlari = from Ogrenci in Ogrenciler
//                                     select Ogrenci.Notlar;
// veya

var OgrenciNotlari = from Ogrenci in Ogrenciler
                                    select Ogrenci.Notlar;

// List<int[]> OgrenciNotlariListTListesi = OgrenciNotlari.ToList();
// veya

var OgrenciNotlariListTListesi = OgrenciNotlari.ToList();

Console.WriteLine("List<T> (örnekte List<int[]>) sınıfına kopyalanmış öğrenci notları :");

// foreach (int[] Notlar in OgrenciNotlariListTListesi) ...
// veya

foreach (var Notlar in OgrenciNotlariListTListesi)
{
	// foreach (int Notu in Notlar)
	// veya
	
    foreach (var Notu in Notlar)
    {
        Console.Write("{0} ", Notu);
    }
    Console.WriteLine();
}
Console.ReadLine();

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

List (örnekte List) sınıfına kopyalanmış öğrenci notları :
75 70 75 
100 95 97 96 
30 40 20 
70 10 30 
80 40 10 
70 80 80 
70 98 97 92 
80 22 97 
20 40 10 30 
100 40 100 
20 0 30 15 
55 75 65 
50 70 80 
20 0 30 
90 90 90 90 
95 70 100 80 
90 55 90 

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

var Ogrenciler = OgrencileriGetir();

var OgrenciNotlari = Ogrenciler.Select(Ogrenci=>Ogrenci.Notlar);

var OgrenciNotlariListTListesi = OgrenciNotlari.ToList();

Console.WriteLine("List<T> (örnekte List<int[]>) sınıfına kopyalanmış öğrenci notları :");

foreach (var Notlar in OgrenciNotlariListTListesi)
{
    foreach (var Notu in Notlar)
    {
        Console.Write("{0} ", Notu);
    }
    Console.WriteLine();
}
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.

var Ogrenciler = OgrencileriGetir();

var Ogrenciler = OgrencileriGetir();

var OgrenciNotlariSozlugu = Ogrenciler.ToDictionary(Ogrenci => Ogrenci.No);

// veya
// Dictionary OgrenciNotlariSozlugu = OgrenciListesi.ToDictionary(Ogrenci => Ogrenci.No);

Kayit BirOgrenciKaydi = OgrenciNotlariSozlugu[14];

Console.WriteLine("14 numaralı öğrencinin bazı bilgileri ...");

Console.WriteLine("Adı {0} olan bu öğrenci, {1}. sınıfta okumaktadır ve {2} doğumludur.",
                  BirOgrenciKaydi.Adi,
                  BirOgrenciKaydi.Sinif,
                  BirOgrenciKaydi.DogumTarihi.Year);
Console.ReadLine();

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

14 numaralı öğrencinin bazı bilgileri ...
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.

object[] Degerler = { 3.0, null, "beş", 3, "dört", 5, "altı", 7.1 };

var CiftDuyarliklilar = Degerler.OfType<double>();

Console.WriteLine("Dizide çift duyarlıklı (double) olarak tutulan değerler :");

foreach (var Deger in CiftDuyarliklilar)
{
    Console.WriteLine(Deger);
}
Console.ReadLine();

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

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

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



Diğer LINQ Makaleleri: