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.

Makale Geçmişi

20.06.16 21:17
LINQ - Kısıtlama (Restriction) Kullanım Örnekleri
Bu makalede kullanılan veri kaynağını görmek için tıklayın . Basit Where Kullanımı 1 Bu örnek rakamlardan oluşan bir dizideki 5'den küçük rakamları seçer ve bir foreach döngüsü ile çıktıya yazar. int[] Rakamlar = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var KucukRakamlar = from Rakam in Rakamlar where Rakam < 5 select Rakam; Console.WriteLine("5'den küçük rakamlar..."); foreach (var Rakam in KucukRakamlar) { Console.WriteLine(Rakam); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : 5'den küçük rakamlar... 0 1 2 3 4 Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: int[] Rakamlar = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var KucukRakamlar = Rakamlar.Where(Rakam => Rakam < 5); Console.WriteLine("5'den küçük rakamlar..."); foreach (var Rakam in KucukRakamlar) { Console.WriteLine(Rakam); } Console.ReadLine(); Basit Where Kullanımı 2 Bu örnek öğrenci bilgilerini içeren bir veri kaynağından başarılı öğrencileri seçer ve foreach döngüsü ile çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = from Ogrenci in Ogrenciler where Ogrenci.Basarili select Ogrenci; Console.WriteLine("Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Başarılı öğrenciler... Çağrı, Tuncay İkinci, Jale Geçe, Ahmet Teyze, Fatma Emre, Mehmet Hanım, Ayşe Babayiğit, Nuri Oran, Kenan Erkanlı, Erhan Fidan, Erhan Çelik, Erhan Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = Ogrenciler.Where(Ogrenci => Ogrenci.Basarili); Console.WriteLine("Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Basit Where Kullanımı 3 Bu örnek öğrenci bilgilerini içeren bir veri kaynağından 1. sınıftaki başarılı öğrencileri seçer ve foreach döngüsü ile çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = from Ogrenci in Ogrenciler where Ogrenci.Basarili && Ogrenci.Sinif == 1 select Ogrenci; Console.WriteLine("1. Sınıftaki Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : 1. Sınıftaki Başarılı öğrenciler... Oran, Kenan Erkanlı, Erhan Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = Ogrenciler.Where(Ogrenci => Ogrenci.Basarili && Ogrenci.Sinif == 1); Console.WriteLine("1. Sınıftaki Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Where ve sondaj Bu örnek öğrenci bilgilerini içeren bir veri kaynağından başarılı öğrencileri seçer ve öğrenci kaydında yer alan notlar isimli bir dizinin elemanlarını da kullanarak başarılı öğrencileri ve ikinci bir foreach aracılığıyla öğrenci notlarını da çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = from Ogrenci in Ogrenciler where Ogrenci.Basarili select Ogrenci; Console.WriteLine("Başarılı öğrencilerin notları..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); foreach (var Notu in Ogrenci.Notlar) { Console.Write("{0} ", Notu); } Console.WriteLine(); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Başarılı öğrencilerin notları... Çağrı, Tuncay 75 70 75 İkinci, Jale 100 95 97 96 Geçe, Ahmet 70 80 80 Teyze, Fatma 70 98 97 92 Emre, Mehmet 80 22 97 Hanım, Ayşe 100 40 100 Babayiğit, Nuri 55 75 65 Oran, Kenan 50 70 80 Erkanlı, Erhan 90 90 90 90 Fidan, Erhan 95 70 100 80 Çelik, Erhan 90 55 90 Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = Ogrenciler.Where(Ogrenci => Ogrenci.Basarili); Console.WriteLine("Başarılı öğrencilerin notları..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); foreach (var Notu in Ogrenci.Notlar) { Console.Write("{0} ", Notu); } Console.WriteLine(); } Console.ReadLine(); Dizinli Where Kullanımı (Where Indexed) Where cümleciğinin 2. kullanım şekli bir Lambda İfadesine (İsimsiz fonksiyona) sıradaki elemanı ve elemanın 0 tabanlı sıra numarasını döndürür. Biz de 2 parametreli bir Lambda İfadesi ile sıradaki eleman ve elemanın sıra numarası (index) bilgisi ile ilgili işlemler gerçekleştirebiliriz. Bu örnek öğrenci bilgilerini içeren bir veri kaynağından veri kaynağında numarası ile aynı sırada bulunan (Örneğin 11. sıradaki elemanın numarası 11 ise) öğrencileri seçer ve bir foreach çıktısı ile seçilen öğrencileri çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var OgrenciListesi = Ogrenciler.Where((Ogrenci, Index) => Ogrenci.No == Index + 1); Console.WriteLine("Listede numarası ile aynı sırada bulunan öğrenciler..."); foreach (var ListeSatiri in OgrenciListesi) { Console.WriteLine("{0} - {1}, {2}", ListeSatiri.No, ListeSatiri.Soyadi, ListeSatiri.Adi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Listede numarası ile aynı sırada bulunan öğrenciler... 6 - Geçe, Ahmet 11 - Döğer, Cevdet 16 - Fidan, Erhan 17 - Çelik, Erhan Dizinli where yöntemi Func<T1, T2, TResult>(T1 arg1, T2 arg2)   delegesi ile temsil edilen ve Lambda İfadesi şeklinde yazdığımız bir isimsiz fonksiyon kullanır. Bu isimsiz fonksiyona 2 parametre geçer. 1. parametre o anda sayılan elemanın kendisi, 2. parametre olarak da elemanın sırası 0 tabanlı olarak (ilk elemanın numarası 0) döndürülür. Biz de elemanın kendisini ve sirasını kullanarak isimsiz fonksiyon içinde işlemler gerçekleştirebiliriz. Şimdiye kadarki örneklerimizde where yöntemine Func<T1, TResult>(T1 arg1)   ile temsil edilen, tek parametreli bir lambda ifadesi, örneğin Ogrenci => Ogrenci.Basarili   kullanmıştık. Kaynak: https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b Diğer LINQ Makaleleri: LINQ Örnekleri makalelerinde kullanılan verikaynağı LINQ (Language Integrated Query - Dile Entegre Edilmiş Sorgu) Nedir? LINQ Sağlayıcıları (LINQ Providers) LINQ Yöntem Sözdizimi (LINQ Method Syntax) LINQ - Temel İşlemler - Bir Veri Kaynağı Bildirme ve Seçme (From ve Select) LINQ - Temel İşlemler - Süzme (Filtering) LINQ - Temel İşlemler - Sıralama (Ordering) LINQ - Temel İşlemler - Gruplama (Grouping) LINQ - Temel İşlemler - Birleştirme (Joining) LINQ - Deferred Execution - Ertelenmiş Çalıştırma LINQ - Immediate Execution - Anında Çalıştırma LINQ - Query Reuse - Sorgunun Yeniden Kullanımı LINQ - Kısıtlama (Restriction) Kullanım Örnekleri  (Bu makale) LINQ - Yansıtma (Projection) - Select Kullanım Örnekleri LINQ - Yansıtma (Projection) - SelectMany Kullanım Örnekleri LINQ - Bölümleme (Partitioning) Örnekleri LINQ - Sıralama (Ordering) Örnekleri LINQ - Gruplama (Grouping) Örnekleri LINQ - Küme (Set) Örnekleri LINQ - Dönüşüm (Conversion) Örnekleri LINQ - Eleman (Element) Seçimi Örnekleri LINQ - Oluşturma (Generation) Örnekleri LINQ - Miktar Belirleyiciler (Quantifiers) Örnekleri LINQ - Yığın (Aggregate) Örnekleri LINQ - Birleştirme (Join) İşlemleri LINQ - Özel Dizilim (Custom Sequence) Örneği LINQ - Concat ve SequenceEqual İle Örnekle r
Ekleyen: canora
Değiştiren: canora
10.04.16 16:43
LINQ - Kısıtlama (Restriction) Kullanım Örnekleri
Bu makalede kullanılan veri kaynağını görmek için tıklayın . Basit Where Kullanımı 1 Bu örnek rakamlardan oluşan bir dizideki 5'den küçük rakamları seçer ve bir foreach döngüsü ile çıktıya yazar. int[] Rakamlar = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var KucukRakamlar = from Rakam in Rakamlar where Rakam < 5 select Rakam; Console.WriteLine("5'den küçük rakamlar..."); foreach (var Rakam in KucukRakamlar) { Console.WriteLine(Rakam); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : 5'den küçük rakamlar... 0 1 2 3 4 Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: int[] Rakamlar = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var KucukRakamlar = Rakamlar.Where(Rakam => Rakam < 5); Console.WriteLine("5'den küçük rakamlar..."); foreach (var Rakam in KucukRakamlar) { Console.WriteLine(Rakam); } Console.ReadLine(); Basit Where Kullanımı 2 Bu örnek öğrenci bilgilerini içeren bir veri kaynağından başarılı öğrencileri seçer ve foreach döngüsü ile çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = from Ogrenci in Ogrenciler where Ogrenci.Basarili select Ogrenci; Console.WriteLine("Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Başarılı öğrenciler... Çağrı, Tuncay İkinci, Jale Geçe, Ahmet Teyze, Fatma Emre, Mehmet Hanım, Ayşe Babayiğit, Nuri Oran, Kenan Erkanlı, Erhan Fidan, Erhan Çelik, Erhan Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = Ogrenciler.Where(Ogrenci => Ogrenci.Basarili); Console.WriteLine("Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Basit Where Kullanımı 3 Bu örnek öğrenci bilgilerini içeren bir veri kaynağından 1. sınıftaki başarılı öğrencileri seçer ve foreach döngüsü ile çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = from Ogrenci in Ogrenciler where Ogrenci.Basarili && Ogrenci.Sinif == 1 select Ogrenci; Console.WriteLine("1. Sınıftaki Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : 1. Sınıftaki Başarılı öğrenciler... Oran, Kenan Erkanlı, Erhan Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = Ogrenciler.Where(Ogrenci => Ogrenci.Basarili && Ogrenci.Sinif == 1); Console.WriteLine("1. Sınıftaki Başarılı öğrenciler..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); } Console.ReadLine(); Where ve sondaj Bu örnek öğrenci bilgilerini içeren bir veri kaynağından başarılı öğrencileri seçer ve öğrenci kaydında yer alan notlar isimli bir dizinin elemanlarını da kullanarak başarılı öğrencileri ve ikinci bir foreach aracılığıyla öğrenci notlarını da çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = from Ogrenci in Ogrenciler where Ogrenci.Basarili select Ogrenci; Console.WriteLine("Başarılı öğrencilerin notları..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); foreach (var Notu in Ogrenci.Notlar) { Console.Write("{0} ", Notu); } Console.WriteLine(); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Başarılı öğrencilerin notları... Çağrı, Tuncay 75 70 75 İkinci, Jale 100 95 97 96 Geçe, Ahmet 70 80 80 Teyze, Fatma 70 98 97 92 Emre, Mehmet 80 22 97 Hanım, Ayşe 100 40 100 Babayiğit, Nuri 55 75 65 Oran, Kenan 50 70 80 Erkanlı, Erhan 90 90 90 90 Fidan, Erhan 95 70 100 80 Çelik, Erhan 90 55 90 Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var BasariliOgrenciler = Ogrenciler.Where(Ogrenci => Ogrenci.Basarili); Console.WriteLine("Başarılı öğrencilerin notları..."); foreach (var Ogrenci in BasariliOgrenciler) { Console.WriteLine("{0}, {1}", Ogrenci.Soyadi, Ogrenci.Adi); foreach (var Notu in Ogrenci.Notlar) { Console.Write("{0} ", Notu); } Console.WriteLine(); } Console.ReadLine(); Dizinli Where Kullanımı (Where Indexed) Where cümleciğinin 2. kullanım şekli bir Lambda İfadesine (İsimsiz fonksiyona) sıradaki elemanı ve elemanın 0 tabanlı sıra numarasını döndürür. Biz de 2 parametreli bir Lambda İfadesi ile sıradaki eleman ve elemanın sıra numarası (index) bilgisi ile ilgili işlemler gerçekleştirebiliriz. Bu örnek öğrenci bilgilerini içeren bir veri kaynağından veri kaynağında numarası ile aynı sırada bulunan (Örneğin 11. sıradaki elemanın numarası 11 ise) öğrencileri seçer ve bir foreach çıktısı ile seçilen öğrencileri çıktıya yazar. var Ogrenciler = OgrencileriGetir(); var OgrenciListesi = Ogrenciler.Where((Ogrenci, Index) => Ogrenci.No == Index + 1); Console.WriteLine("Listede numarası ile aynı sırada bulunan öğrenciler..."); foreach (var ListeSatiri in OgrenciListesi) { Console.WriteLine("{0} - {1}, {2}", ListeSatiri.No, ListeSatiri.Soyadi, ListeSatiri.Adi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Listede numarası ile aynı sırada bulunan öğrenciler... 6 - Geçe, Ahmet 11 - Döğer, Cevdet 16 - Fidan, Erhan 17 - Çelik, Erhan Dizinli where yöntemi Func<T1, T2, TResult>(T1 arg1, T2 arg2)   delegesi ile temsil edilen ve Lambda İfadesi şeklinde yazdığımız bir isimsiz fonksiyon kullanır. Bu isimsiz fonksiyona 2 parametre geçer. 1. parametre o anda sayılan elemanın kendisi, 2. parametre olarak da elemanın sırası 0 tabanlı olarak (ilk elemanın numarası 0) döndürülür. Biz de elemanın kendisini ve sirasını kullanarak isimsiz fonksiyon içinde işlemler gerçekleştirebiliriz. Şimdiye kadarki örneklerimizde where yöntemine Func<T1, TResult>(T1 arg1)   ile temsil edilen, tek parametreli bir lambda ifadesi, örneğin Ogrenci => Ogrenci.Basarili   kullanmıştık.
Ekleyen: canora

En fazla 3 eski durum gösterilir.