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
husamettin.elalmis@arksoft.com.tr
Last updated