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 - Temel İşlemler - Bir Veri Kaynağı Bildirme ve Seçme (From ve Select)

LINQ sorgularında birinci işlem sorgulanacak bir veri kaynağı (Data Source) ve seri değişkeni (Range Variable) bildirmektir. Bunun için sorguların ilk bölümü olan "from" cümleciğinin kullanılması gerekir.
var sayilar = int[] { 33, 22, 56, 7, 34, 99 };
var secilenSayilar = from sayi in sayilar
select sayi;


/*
// LINQ Yöntem Sözdizimi ile sorgu :
var query = sayilar.Select(sayi => sayi);
*/
from cümleciğinde "in" ifadesinden sonra gelen bilgi (örnekte sayilar) veri kaynağını bildirir. "from" dan sonra gelen isim ise seri değişkenini bildirir. Seri değişkeni (örnekte sayi) "foreach" döngüsündeki döngü değişkeni bildirimi gibi sorgu çalıştırıldığında veri kaynağının elemanları tek tek gezilirken sıradaki elemana referans olur / sıradaki elemanı temsil etmek için kullanılır. Bazen çoklu değişkenler kullanmak gerekebilir. Bunun için "let" cümleciği kullanılır. Let ayrıca incelenecektir.

Sondaki "select sayi" cümleciği ise "sayi" değişkeninin nesinin seçileceğini bildirir. Bizim örneğimizde koleksiyonun sıradaki elemanına referans olan "sayi" değişkeninin kendisi (başvurduğu değer) seçilmektedir.

Fakat bazen değişkenin işaret ettiği tipin bir özelliği veya değişkenin değerini bir işleme tabi tuttuktan sonraki (örneğin karesi aldıktan sonra, büyük harfe çevirdikten sonra ...) değer vb. seçimler yapılabilir. İşte bir örnek.

public class Ogrenci
{
public string Adi { get; set; }
public string Soyadi { get; set; }
public int No { get; set; }
}

.
.
.

var ogrenciler = List<Ogrenci> {
new Ogrenci() { Adi = "Ali", Soyadi = "Ünlü", No = 112 },
new Ogrenci() { Adi = "Veli", Soyadi = "Yeşil", No = 116 },
new Ogrenci() { Adi = "Selami", Soyadi = "Sağlam", No = 132 }
};

var query = from ogrenci in ogrenciler
select ogr.Soyadi;

/*
// LINQ Yöntem Sözdizimi ile sorgu :
var query = ogrenciler.Select(ogr => ogr.Soyadi);
*/

.
.
.
Örnekteki sorgu, "ogrenciler" isimli genelliyici (generic) listeden her bir öğrencinin soyadı bilgisinin (Ogrenci  sınıfının Soyadi özelliğinin) seçilmesini bildirir. Dolayısıyla öğrencilerin soyadlarından oluşan bir koleksiyon (Soyadi özelliğinin türü Stringolduğundan IEnumerable<String> türünde) elde ederiz.



Diğer LINQ Makaleleri:


Yazan: 09.04.16 20:08

101,387p 4ü