Dev Arksoft
  • Arksoft Developer Network
  • Ağustos 2023
    • Angularda DOM (Document Object Model) Manipülasyonu
    • Angular’da Routing
    • Representational State Transfer (REST)
    • .Net Framework için Local NugetPackage
    • Agile Nedir?
  • Temmuz 2023
    • Angular HTTP Interceptors
    • Angularda Promise ve Observable
    • Mongo DB Kullanımı
  • Haziran 2023
    • Angular Validators
  • Mayıs 2023
    • Docker Uzerine Redis Kurulumu ve .Net Core ile Redise Erişim
  • Nisan 2023
    • Angular 14 Componentler Arası İletişim
  • Şubat 2023
    • JMeter ile Performans Testi
  • Ocak 2023
    • Windows Giriş Ekranında C# Form Açmak
  • Temmuz 2022
    • Regular Expressions
  • Haziran 2022
    • RSA Şifreleme
    • AutoMapper Kullanımı
    • Permutasyon ve Kombinasyon
    • Generic Repository Pattern
    • Levenshtein Algoritması
    • HTML 5’e Giriş
    • Graph Yapılar
  • Mayıs 2022
    • IQueryable IEnumerable Farklar
    • Sıralama Algoritmaları
  • Şubat 2022
    • ADFS Custom 2FA Integration
    • Reacta Giriş ve Reactın Temel Prensipleri
    • TypeScript Kullanımı
    • Serialization Kullanımı
    • Log4Net Kullanımı
    • Collections Yapıları
    • Windows Service Projesini Debug Etme ve Harici Exe Çalıştırma
    • Culture ve DateTime Kullanımı
    • Reflection Kullanımı
    • Steganografi Teknikleri
    • ElasticSearch Kullanımı
    • SWAGGER ve JWT TOKEN BASED WEBAPI Kullanımı
    • LINQ Komutları Kullanımı
    • Image Processing İşlemleri Kullanımı
Powered by GitBook
On this page
  1. Şubat 2022

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

PreviousSWAGGER ve JWT TOKEN BASED WEBAPI KullanımıNextImage Processing İşlemleri Kullanımı

Last updated 2 years ago