LINQ Komutları Kullanımı

Husamettin Elalmis

Merhaba arkadaşlar, bu yazıda sizlere Microsoft Framework kütüphanesinde yer alan Linq namespaceinde bulunan Tüm Linq komutlarını örneklerle anlatacağım.

Console app yazarak bu komutları tek tek inceledim ve bu dokümanı oluşturdum, sizlere katkısı olabilir, rehber niteliğinde kullanabilirsiniz.

Komut Listesi

// Aggreate komutları

Aggregate

Average

Count

LongCount

Max

Min

Sum

// Conversion komutları

AsEnumerable

Cast

OfType

ToArray

ToDictionary

ToList

ToLookup

// Element komutları

ElementAt

ElementAtOrDefault

First

FirstOrDefault

Last

LastOrDefault

Single

SingleOrDefault

// Üretim komutları

DefaultIfEmpty

Empty

Range

Repeat

// Gruplama komutları

GroupBy

GroupJoin

Join

// Sıralama komutları

OrderBy

OrderByDescending

Reverse

ThenBy

ThenByDescending

// Birleştirme komutları

Concat

SequenceEqual

Zip

// Bölümleme komutları

Skip

SkipWhile

Take;

TakeWhile

// Seçim komutları

Select

SelectMany

// Tanımlayıcı komutlar

All

Any

Contains

// Kriter komutları

Where

// Küme komutları

Distinct

Except

Intersect

Union

== Aggregate01 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Aggregate((a, b) => a * b);

Açiklama: dizideki her bir elemani kullanarak calculate yapilmasina imkan saglar

Çikti: 120

== Aggregate02 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Aggregate(10, (a, b) => a + b);

Açiklama: Seed degeri alabilir, dizideki her bir elemani kullanarak calculate yapilmasina imkan saglar

Çikti: 25

== Average kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Average();

Açiklama: Dizideki elemanlarin ortalama degerini hesaplar

Çikti: 3

== Count kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Count();

Açiklama: Dizideki eleman sayisini döndürür

Çikti: 5

== LongCount kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.LongCount();

Açiklama: Dizideki eleman sayisini döndürür (Int32'den büyük diziler için)

Çikti: 5

== Max kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Max();

Açiklama: Dizideki en büyük elemani döndürür

Çikti: 5

== Min kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Min();

Açiklama: Dizideki en küçük elemani döndürür

Çikti: 1

== Sum kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Sum();

Açiklama: Dizideki elemanlarin toplam degerini döndürür

Çikti: 15

== AsEnumerable kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.AsEnumerable();

Açiklama: Diziyi Enumerable collection yapisina dönüstürür

Çikti: -Enumerable olarak kullanilir-

== Cast kullanimi ==

Girdi: 1,2,3,4,5 (List`1)

Komut: var res = arr.Cast<int>();

Açiklama: Dizinin elemanlarini baska bir tipe dönüstürür

Çikti: -List objesini arraye çevirir, int[] -

== OfType kullanimi ==

Girdi: Hüsamettin,28,7.04,,Elalmis (Object[])

Komut: var res = arr.OfType<string>();

Açiklama: Dizinin elemanlarindan belirtilen tipdeki elemanlari seçer

Çikti: Hüsamettin,Elalmis

== ToArray kullanimi ==

Girdi: 1,2,3,4,5 (List`1)

Komut: var res = arr.ToArray();

Açiklama: Listi diziye dönüstürür

Çikti: 1,2,3,4,5 (int[])

== ToDictionary01 kullanimi ==

Girdi: (List`1)

public class SehirPlaka

{

public string Sehir { get; set; }

public int Plaka { get; set; }

}

var sehirler = new List<SehirPlaka>();

sehirler.Add(new SehirPlaka() { Sehir = "Ankara", Plaka = 6 });

sehirler.Add(new SehirPlaka() { Sehir = "Istanbul", Plaka = 34 });

sehirler.Add(new SehirPlaka() { Sehir = "Bolu", Plaka = 14 });

Komut: var res = arr.ToDictionary(k => k.Plaka, v => v.Sehir); var sehir = res[6];

Açiklama: Listi dictionarye dönüstürür

Çikti: 6 nolu plaka Ankara'dir

== ToDictionary02 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.ToDictionary(k => k, v => (v % 2) == 1 ? "Tek" : "Çift");

Açiklama: Listeyi dictionarye dönüstürür

Çikti:

1 => Tek

2 => Çift

3 => Tek

4 => Çift

5 => Tek

== ToList kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.ToList();

Açiklama: Arrayi liste dönüstürür

Çikti:

arr => Int32[]

res => List`1

== ToLookup kullanimi ==

Girdi: bir,iki,üç,dört,bes,alti,yedi,sekiz,dokuz (String[])

Komut: var res = arr.ToLookup(x => x.Length);

Açiklama: Listenin içindeki elemanlari gruplayarak çeker

Çikti:

1 karakter uzunlugundaki elemanlar

2 karakter uzunlugundaki elemanlar

üç

3 karakter uzunlugundaki elemanlar

bir

iki

bes

4 karakter uzunlugundaki elemanlar

dört

alti

yedi

5 karakter uzunlugundaki elemanlar

sekiz

dokuz

6 karakter uzunlugundaki elemanlar

7 karakter uzunlugundaki elemanlar

8 karakter uzunlugundaki elemanlar

9 karakter uzunlugundaki elemanlar

== ElementAt kullanimi ==

Girdi: bir,iki,üç,dört,bes,alti,yedi,sekiz,dokuz (String[])

Komut: var res = arr.ElementAt(2);

Açiklama: Listenin içinden eleman çeker

Çikti: 2 indis nolu eleman => üç'dir

== ElementAtOrDefault kullanimi ==

Girdi: bir,iki,üç,dört,bes,alti,yedi,sekiz,dokuz (String[])

Komut: var res = arr.ElementAtOrDefault(20);

Açiklama: Listenin içinden eleman çeker, bulamazsa null döner.

Çikti: 20 indis nolu eleman => null'dir

== First01 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.First();

Açiklama: Listenin içinden ilk elemani döndürür. Bulamazsa patlar.

Çikti: Ilk eleman => 1'dir

== First02 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.First(x => x > 3);

Açiklama: Listenin içinden sarta bagli olarak ilk elemani döndürür. Bulamazsa patlar.

Çikti: 3 den büyük ilk eleman => 4'dir

== FirstOrDefault01 kullanimi ==

Girdi: 1,2,3,4,5 (Nullable`1[])

Komut: var res = arr.FirstOrDefault();

Açiklama: Listenin içinden ilk elemani döndürür. Bulamazsa null döner

Çikti: Ilk eleman => 1'dir

== FirstOrDefault02 kullanimi ==

Girdi: 1,2,3,4,5 (Nullable`1[])

Komut: var res = arr.FirstOrDefault(x => x > 10);

Açiklama: Listenin içinden sarta bagli olarak ilk elemani döndürür. Bulamazsa null döner

Çikti: 10 den büyük ilk eleman => null'dir

== Last01 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Last();

Açiklama: Listenin içinden son elemani döndürür. Bulamazsa patlar.

Çikti: Son eleman => 5'dir

== Last02 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Last(x => x > 3);

Açiklama: Listenin içinden sarta bagli olarak son elemani döndürür. Bulamazsa patlar.

Çikti: 3 den büyük son eleman => 5'dir

== LastOrDefault01 kullanimi ==

Girdi: 1,2,3,4,5 (Nullable`1[])

Komut: var res = arr.LastOrDefault();

Açiklama: Listenin içinden son elemani döndürür. Bulamazsa null döner

Çikti: Son eleman => 5'dir

== LastOrDefault02 kullanimi ==

Girdi: 1,2,3,4,5 (Nullable`1[])

Komut: var res = arr.LastOrDefault(x => x > 10);

Açiklama: Listenin içinden sarta bagli olarak son elemani döndürür. Bulamazsa null döner

Çikti: 10 den büyük son eleman => null'dir

== Single kullanimi ==

Girdi: 1,2,3,3,4,5 (Nullable`1[])

Komut: var res = arr.Single(x=> x == 3);

Açiklama: Listenin içinden ilk elemani döndürür. Ayni eleman birden fazla tekrar ederse exception firlatir.

Çikti: Sequence contains more than one matching element

== SingleOrDefault01 kullanimi ==

Girdi: 1,2,3,3,4,5 (Nullable`1[])

Komut: var res = arr.SingleOrDefault(x=> x == 10);

Açiklama: Listenin içinden ilk elemani döndürür, bulamazsa null döner. Ayni eleman birden fazla tekrar ederse exception firlatir.

Çikti: 10 olan eleman => null'dir

== SingleOrDefault02 kullanimi ==

Girdi: 1,2,3,3,4,5 (Nullable`1[])

Komut: var res = arr.SingleOrDefault(x=> x == 3);

Açiklama: Listenin içinden ilk elemani döndürür, bulamazsa null döner. Ayni eleman birden fazla tekrar ederse exception firlatir.

Çikti: Sequence contains more than one matching element

== DefaultIfEmpty01 kullanimi ==

Girdi: int[] a = {};

Komut: var res = a.DefaultIfEmpty();

Açiklama: Dizilere uygulanir, varsayilan degerini setler

Çikti: 0

== DefaultIfEmpty02 kullanimi ==

Girdi: int[] a = {};

Komut: var res = a.DefaultIfEmpty(10);

Açiklama: Dizilere uygulanir, varsayilan degerini setler

Çikti: 10

== Empty kullanimi ==

Girdi: -

Komut: var arr = Enumerable.Empty<string>();

Açiklama: Bos enumerable dizisi olusturur

Çikti:

== Range kullanimi ==

Girdi: -

Komut: var arr = Enumerable.Range(1, 10);

Açiklama: Belirlenen araliklarda sayi dizisi olusturur

Çikti: 1,2,3,4,5,6,7,8,9,10 (<RangeIterator>d__113)

== Repeat kullanimi ==

Girdi: -

Komut: var arr = Enumerable.Repeat("Hüsamettin", 5);

Açiklama: Girilen dizeyi belirlenen kere tekrarlar

Çikti: Hüsamettin,Hüsamettin,Hüsamettin,Hüsamettin,Hüsamettin (<RepeatIterator>d__115`1)

== GroupBy kullanimi ==

Girdi: (List`1)

public class SehirPlaka

{

public string Sehir { get; set; }

public int Plaka { get; set; }

public int BolgeId { get; set; }

}

var sehirler = new List<SehirPlaka>();

sehirler.Add(new SehirPlaka() { Sehir = "Ankara", Plaka = 6, BolgeId = 1 });

sehirler.Add(new SehirPlaka() { Sehir = "Zonguldak", Plaka = 67, BolgeId = 2 });

sehirler.Add(new SehirPlaka() { Sehir = "Bolu", Plaka = 14, BolgeId = 2 });

Komut: var res = sehirler.GroupBy(x => x.BolgeId);

Açiklama: Belirlenen kritere göre gruplama yapar

Çikti:

Bölge sayisi: 2

Bölge No:1

Sehir:Ankara, Plaka: 6

Bölge No:2

Sehir:Zonguldak, Plaka: 67

Sehir:Bolu, Plaka: 14

== GroupJoin kullanimi ==

Girdi: (List`1)

public class SehirPlaka

{

public string Sehir { get; set; }

public int Plaka { get; set; }

public int BolgeId { get; set; }

}

public class Bolge

{

public int Id { get; set; }

public string Ad { get; set; }

}

var sehirler = new List<SehirPlaka>();

sehirler.Add(new SehirPlaka() { Sehir = "Ankara", Plaka = 6, BolgeId = 1 });

sehirler.Add(new SehirPlaka() { Sehir = "Zonguldak", Plaka = 67, BolgeId = 2 });

sehirler.Add(new SehirPlaka() { Sehir = "Bolu", Plaka = 14, BolgeId = 2 });

var bolgeler = new List<Bolge>();

bolgeler.Add(new Bolge() { Id = 1, Ad = "Marmara Bölgesi" });

bolgeler.Add(new Bolge() { Id = 2, Ad = "Karadeniz Bölgesi" });

Komut: var res = bolgeler.GroupJoin(sehirler, x => x.Id, y => y.BolgeId, (t1, t2) => new { t1 = t1, t2 = t2 });

Açiklama: Belirlenen kritere göre joinli gruplama yapar. Sqldeki left outer joine denk gelir.

Çikti:

foreach (var item in res)

{

foreach (var item2 in item.t2)

{

Console.WriteLine($"Id: {item.t1.Id} BölgeAd:{item.t1.Ad} Sehir:{item2.Sehir} Plaka:{item2.Plaka} BolgeId:{item2.BolgeId}");

}

}

Id: 1 BölgeAd:Marmara Bölgesi Sehir:Ankara Plaka:6 BolgeId:1

Id: 2 BölgeAd:Karadeniz Bölgesi Sehir:Zonguldak Plaka:67 BolgeId:2

Id: 2 BölgeAd:Karadeniz Bölgesi Sehir:Bolu Plaka:14 BolgeId:2

== Join kullanimi ==

Girdi: (List`1)

public class SehirPlaka

{

public string Sehir { get; set; }

public int Plaka { get; set; }

public int BolgeId { get; set; }

}

public class Bolge

{

public int Id { get; set; }

public string Ad { get; set; }

}

var sehirler = new List<SehirPlaka>();

sehirler.Add(new SehirPlaka() { Sehir = "Ankara", Plaka = 6, BolgeId = 1 });

sehirler.Add(new SehirPlaka() { Sehir = "Zonguldak", Plaka = 67, BolgeId = 2 });

sehirler.Add(new SehirPlaka() { Sehir = "Bolu", Plaka = 14, BolgeId = 2 });

var bolgeler = new List<Bolge>();

bolgeler.Add(new Bolge() { Id = 1, Ad = "Marmara Bölgesi" });

bolgeler.Add(new Bolge() { Id = 2, Ad = "Karadeniz Bölgesi" });

Komut: var res = bolgeler.Join(sehirler, x => x.Id, y => y.BolgeId, (t1, t2) => new { t1 = t1, t2 = t2 });

Açiklama: Belirlenen kritere göre joinli gruplama yapar. Sqldeki inner joine denk gelir.

Çikti:

foreach (var item in res)

{

Console.WriteLine($"Id: {item.t1.Id} BölgeAd:{item.t1.Ad} Sehir:{item.t2.Sehir} Plaka:{item.t2.Plaka} BolgeId:{item.t2.BolgeId}");

}

Id: 1 BölgeAd:Marmara Bölgesi Sehir:Ankara Plaka:6 BolgeId:1

Id: 2 BölgeAd:Karadeniz Bölgesi Sehir:Zonguldak Plaka:67 BolgeId:2

Id: 2 BölgeAd:Karadeniz Bölgesi Sehir:Bolu Plaka:14 BolgeId:2

== OrderBy01 kullanimi ==

Girdi: bir,iki,üç,dört,bes,alti,yedi,sekiz,dokuz (String[])

Komut: var res = arr.OrderBy(x=> x);

Açiklama: Listeyi belirlenen kritere göre siralar

Çikti: alti,bes,bir,dokuz,dört,iki,sekiz,üç,yedi'dir

== OrderBy02 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.OrderBy(x=> x);

Açiklama: Listeyi belirlenen kritere göre siralar

Çikti: 1,2,3,4,5'dir

== OrderByDescending01 kullanimi ==

Girdi: bir,iki,üç,dört,bes,alti,yedi,sekiz,dokuz (String[])

Komut: var res = arr.OrderByDescending(x=> x);

Açiklama: Listeyi belirlenen kritere göre tersten siralar

Çikti: yedi,üç,sekiz,iki,dört,dokuz,bir,bes,alti'dir

== OrderByDescending02 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.OrderByDescending(x=> x);

Açiklama: Listeyi belirlenen kritere göre tersten siralar

Çikti: 5,4,3,2,1'dir

== Reverse kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Reverse();

Açiklama: Listeyi tersine siralar

Çikti: 5,4,3,2,1'dir

== ThenBy kullanimi ==

Girdi: (List`1)

public class SehirPlaka

{

public string Sehir { get; set; }

public int Plaka { get; set; }

public int BolgeId { get; set; }

}

var sehirler = new List<SehirPlaka>();

sehirler.Add(new SehirPlaka() { Sehir = "Ankara", Plaka = 6, BolgeId = 1 });

sehirler.Add(new SehirPlaka() { Sehir = "Zonguldak", Plaka = 67, BolgeId = 2 });

sehirler.Add(new SehirPlaka() { Sehir = "Bolu", Plaka = 14, BolgeId = 2 });

Komut: var res = sehirler.OrderBy(x => x.BolgeId).ThenBy(y => y.Plaka);

Açiklama: Belirlenen kriterlere göre siralama yapar

Çikti:

BolgeId:1 Plaka:6 Sehir:Ankara

BolgeId:2 Plaka:14 Sehir:Bolu

BolgeId:2 Plaka:67 Sehir:Zonguldak

== ThenByDescending kullanimi ==

Girdi: (List`1)

public class SehirPlaka

{

public string Sehir { get; set; }

public int Plaka { get; set; }

public int BolgeId { get; set; }

}

var sehirler = new List<SehirPlaka>();

sehirler.Add(new SehirPlaka() { Sehir = "Ankara", Plaka = 6, BolgeId = 1 });

sehirler.Add(new SehirPlaka() { Sehir = "Zonguldak", Plaka = 67, BolgeId = 2 });

sehirler.Add(new SehirPlaka() { Sehir = "Bolu", Plaka = 14, BolgeId = 2 });

Komut: var res = sehirler.OrderBy(x => x.BolgeId).ThenByDescending(y => y.Plaka);

Açiklama: Belirlenen kriterlere göre tersten siralama yapar

Çikti:

BolgeId:1 Plaka:6 Sehir:Ankara

BolgeId:2 Plaka:67 Sehir:Zonguldak

BolgeId:2 Plaka:14 Sehir:Bolu

== Concat kullanimi ==

Girdi: 1,2,3,4,5 (Int32[]) / 6,7,8,9 (Int32[])

Komut: var res = arr.Concat(arr2);

Açiklama: Birlestirme islemi yapar

Çikti: 1,2,3,4,5,6,7,8,9'dir

== SequenceEqual kullanimi ==

Girdi: 1,2,3,4,5 (Int32[]) / 3,1,2,4,5 (Int32[])

Komut: var res = arr.SequenceEqual(arr2);

Açiklama: Dizinin sirali esit olup olmadigini döndürür

Çikti: Esit Degil

== SequenceEqual kullanimi ==

Girdi: 1,2,3,4,5 (Int32[]) / 1,2,3,4,5 (Int32[])

Komut: var res = arr.SequenceEqual(arr2);

Açiklama: Dizinin sirali esit olup olmadigini döndürür

Çikti: Esit

== Zip kullanimi ==

Girdi: 3,1,2,4,5 (Int32[]) / 1,2,3,4,5 (Int32[])

Komut: var res = arr.Zip(arr2, (a, b) => (a + b));

Açiklama: Iki diziyi ayni anda isleme koyarak yeni bir dizi döndürür

Çikti: 4,3,5,8,10

== Skip kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Skip(2);

Açiklama: Dizide belirlenen kadar elemani pas geçer atlar

Çikti: 3,4,5

== SkipWhile kullanimi ==

Girdi: 1,1,1,1,1,1,2,3,1,2,3,4,5 (Int32[])

Komut: var res = arr.SkipWhile(x => x == 1);

Açiklama: Dizide belirlenen kadar tekrar eden elemani pas geçer atlar

Çikti: 2,3,1,2,3,4,5

== Take kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Take(2);

Açiklama: Dizide belirlenen kadar elemani geri döndürür

Çikti: 1,2

== TakeWhile kullanimi ==

Girdi: 1,1,1,1,1,1,2,3,1,2,3,4,5 (Int32[])

Komut: var res = arr.TakeWhile(x => x == 1);

Açiklama: Dizide belirlenen kadar tekrar eden elemani geri döndürür

Çikti: 1,1,1,1,1,1

== Select01 kullanimi ==

Girdi: 1,2,3,4,5 (Int32[])

Komut: var res = arr.Select(x => x = x * x);

Açiklama: Diziden eleman seçer geri döndürür

Çikti: 1,4,9,16,25

== Select02 kullanimi ==

Girdi: LinqArge.SehirPlaka,LinqArge.SehirPlaka,LinqArge.SehirPlaka (List`1)

Komut: var res = arr.Select(x => new { x = x,y = new Bolge() { Id = x.BolgeId, Ad = Guid.NewGuid().ToString() } });

Açiklama: Diziden eleman seçer anonymous type olarak geri döndürür

Çikti:

x.Sehir:Ankara x.Plaka:6 x.BolgeId:1 y.Id:1 y.Ad:8a7efb50-866d-498d-90d3-986b62deb869

x.Sehir:Zonguldak x.Plaka:67 x.BolgeId:2 y.Id:2 y.Ad:56638323-df72-4f77-aaa2-d7f3eda0c27a

x.Sehir:Bolu x.Plaka:14 x.BolgeId:2 y.Id:2 y.Ad:e014f878-0823-478e-985a-08766910fb39

== Select03 kullanimi ==

Girdi: LinqArge.SehirPlaka,LinqArge.SehirPlaka,LinqArge.SehirPlaka (List`1)

Komut: var res = arr.Select((v, i) => new { v = v, Index = i });

Açiklama: Diziden eleman seçer yaninda indis degerini de döndürür

Çikti:

Index:0 Object:LinqArge.SehirPlaka

Index:1 Object:LinqArge.SehirPlaka

Index:2 Object:LinqArge.SehirPlaka

== SelectMany kullanimi ==

Girdi: 1,2,3 (Int32[]) / Çilek,Karpuz,Kiraz,Muz,Erik,Kivi (String[])

Komut: var res = arr.SelectMany(x => arr2, (x, y) => new { x, y });

Açiklama: Iki diziyi cross join birbirine baglar

Çikti: { x = 1, y = Çilek },{ x = 1, y = Karpuz },{ x = 1, y = Kiraz },{ x = 1, y = Muz },{ x = 1, y = Erik },{ x = 1, y = Kivi },{ x = 2, y = Çilek },{ x = 2, y = Karpuz },{ x = 2, y = Kiraz },{ x = 2, y = Muz },{ x = 2, y = Erik },{ x = 2, y = Kivi },{ x = 3, y = Çilek },{ x = 3, y = Karpuz },{ x = 3, y = Kiraz },{ x = 3, y = Muz },{ x = 3, y = Erik },{ x = 3, y = Kivi }

== All kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.All(x => x.Contains("a"));

Açiklama: Tüm dizi elemanlarini tarar, tümü için condition saglanirsa True döner, saglanmazsa False döner.

Çikti: True

== All kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.All(x => x.Contains("t"));

Açiklama: Tüm dizi elemanlarini tarar, tümü için condition saglanirsa True döner, saglanmazsa False döner.

Çikti: False

== Any kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Any(x => x.Contains("y"));

Açiklama: Tüm dizi elemanlarini tarar, herhangi biri için condition saglanirsa True döner, saglanmazsa False döner.

Çikti: False

== Any kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Any(x => x.Contains("p"));

Açiklama: Tüm dizi elemanlarini tarar, herhangi biri için condition saglanirsa True döner, saglanmazsa False döner.

Çikti: True

== Contains kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Any(x => x.Contains("Fil"));

Açiklama: Tüm dizi elemanlarini tarar, aranan varsa True döner, yoksa False döner.

Çikti: False

== Contains kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Any(x => x.Contains("Jaguar"));

Açiklama: Tüm dizi elemanlarini tarar, aranan varsa True döner, yoksa False döner.

Çikti: True

== Where01 kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Where(x => x.Contains("p"));

Açiklama: Tüm dizi elemanlarini tarar, sarta uyan elemanlari geri döndürür.

Çikti: Kaplan,Kaplumbaga

== Where01 kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Where(x => x.Contains("j"));

Açiklama: Tüm dizi elemanlarini tarar, sarta uyan elemanlari geri döndürür.

Çikti: - bos -

== Where01 kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Where(x => x.Contains("J"));

Açiklama: Tüm dizi elemanlarini tarar, sarta uyan elemanlari geri döndürür.

Çikti: Jaguar

== Where02 kullanimi ==

Girdi: Aslan,Kaplan,Kaplumbaga,Zürafa,Jaguar (String[])

Komut: var res = arr.Where((x, i) => x.Contains("a") && i > 2);

Açiklama: Tüm dizi elemanlarini tarar, sarta uyan elemanlari geri döndürür. (index kullanimi)

Çikti: Zürafa,Jaguar

== Distinct kullanimi ==

Girdi: 1,2,2,3,5,6,6,6,8,9 (Int32[])

Komut: var res = arr.Distinct();

Açiklama: Dizinin elemanlarinda tekrar edenleri atar, tekil yapar

Çikti: 1,2,3,5,6,8,9

== Except kullanimi ==

Girdi: 1,2,3,4,5,6,7,8,9 (Int32[]) / 6,7,8,9 (Int32[])

Komut: var res = arr.Except(arr2);

Açiklama: Dizinin içinden diger dizi elemanlarini çikartir

Çikti: 1,2,3,4,5

== Intersect kullanimi ==

Girdi: 1,2,3,4,5,6,7,8,9 (Int32[]) / 0,4,6,7,10,11,12 (Int32[])

Komut: var res = arr.Intersect(arr2);

Açiklama: Iki dizinin kesisimini döndürür

Çikti: 4,6,7

== Union kullanimi ==

Girdi: 1,2,3,4,5,6,7,8,9 (Int32[]) / 0,4,6,7,10,11,12 (Int32[])

Komut: var res = arr.Union(arr2);

Açiklama: Iki listeyi birlestirir tekil liste dönüstürür

Çikti: 1,2,3,4,5,6,7,8,9,0,10,11,12

Sonuç

  • Linq komutlarını hemen hemen heryerde kullanmaktayız

  • Bu dokümandaki tüm komutlar eksiksiz olarak incelenmiş ve aktarılmıştır.

  • Linq komutları kullanılarak EF(EntityFramework) veritabanı üzerinde işlemler yapmaktayız. ( SaveOrChanges(), Insert(), vb. komutlar EF ile ilgili komutlardır. Bu dokümanda EF komutları yer almamıştır)

Saygılarımla,

Hüsamettin ELALMIŞ – 26.06.2021

[email protected]

Last updated