logo

LINQ nedir?

LINQ, Dil Entegre Sorgulama olarak bilinir ve .NET 3.5 ve Visual Studio 2008'de sunulur. LINQ'nun mükemmelliği, .NET dillerine (C#, VB.NET vb. gibi) sorgular oluşturma kapasitesi vermesidir. Bilgi kaynağından bilgi kurtarın. Örneğin, bir program yedek kayıtlardan veri alabilir veya çalışan kayıtlarına ulaşabilir, vb. Önceki yıllarda bu tür bilgiler uygulamadan farklı bir veri setinde saklanıyordu ve SQL, XML vb. bu tür bilgilere erişmek için gerçekten çeşitli soru dillerini öğrenmek istiyorsunuz. Üstelik C# dilini veya başka bir .NET dilini kullanarak soru oluşturamazsınız.

Java'da ters dize

Bu tür sorunları aşmak için Microsoft LINQ'u yarattı. Herhangi bir LINQ geçerli bilgi kaynağına yönelik bir soru oluşturmak için bir kapasiteyi daha C# veya .NET lehçelerine bağlar. Dahası, en iyi yanı, soru oluşturmak için kullanılan cümle yapısının, ne tür bilgi kaynağı kullanılırsa kullanılsın benzer olması, bir sosyal veri setindeki bilgi hakkında sorgulama yapmanın gramerinin, soru bilgisi oluşturmak için kullanılan dilbilgisi ile aynı olmasıdır. bir kümeye yerleştirildiğinde SQL'i veya .NET dışı başka bir dil bileşenini kullanmanın zorlayıcı bir nedeni vardır. LINQ'u ayrıca SQL ile, XML kayıtlarıyla, ADO.NET ile, web yönetimleriyle ve diğer bazı bilgi tabanlarıyla da kullanabilirsiniz.

C#'ta LINQ, Sistem'de mevcuttur. Linq ad alanı. LINQ sorularını destekleyen farklı türde sınıflar ve teknikler sunar. Bu ad alanında:

  1. Enumerable sınıfı, IEnumerable'ı çalıştıran bir nesne üzerinde çalışan standart bir sorgu operatörünü içerir.
  2. Sorgulanabilir sınıf, IQueryable'ı çalıştıran bir nesne üzerinde çalışan standart sorgulama yöneticilerini içerir.

Örneğin : SQL, veritabanındaki verileri kaydetmek ve kurtarmak için kullanılan yapılandırılmış bir sorgu dilidir. Benzer şekilde LINQ da Organize Sorgu Cümlesi yapısıdır. LINQ temel C#'tır. XML, dokümanlar, koleksiyonlar, ADO.Net DataSet, Web Hizmeti, MS SQL Server ve farklı veritabanı sunucuları gibi çeşitli kaynaklardan bilgi kurtarmak için kullanılır.

LINQ nedir?

LINQ'un Kullanım Alanları

  1. LINQ yapmanın arkasındaki temel neden, C# 3.0'dan önce for döngüsünü, for her döngüyü veya belirli bir nesneyi bulmak için bir koleksiyonda geçiş yapmak için delegeleri kullanıyor olmamızdır; ancak bir nesneyi bulmak için bu stratejileri dahil etmenin zararı, gerçekten bunu istemenizdir. Daha sıkıcı olan bir nesneyi bulmak ve programınızı daha az anlaşılır hale getirmek için çok büyük miktarda kod oluşturun. Bu sorunları aşmak için, birkaç satırda benzer aktiviteyi gerçekleştiren ve kodunuzu anlaşılır hale getiren LINQ sunuldu; üstelik benzer kodları farklı projelere de dahil edebilirsiniz.
  2. Ayrıca derleme zamanında tam sıralama kontrolü sağlar. Çalışma zamanında hatayı ayırt etmemize yardımcı olur, böylece onları şüphesiz ortadan kaldırabiliriz.
  3. LINQ, SQL'e göre basit, çok düzenli ve önemli düzeyde bir dildir
  4. LINQ'u C# dizisi ve koleksiyonlarıyla da aynı şekilde kullanabilirsiniz. Eski sorunları güçlü bir şekilde ele almanız için size başka bir rehberlik sağlar.
  5. LINQ'un yardımıyla şüphesiz XML, SQL, Entities, nesneler vb. gibi bir veri kaynağıyla çalışabilirsiniz. Tek bir sorgunun veritabanıyla çalışabilmesi, çeşitli dil türlerini öğrenme ihtiyacının zorlayıcı nedenidir.
  6. LINQ, sorgu ifadesini, Anonim türleri, Örtülü olarak yazılan değişkenleri, Lambda ifadelerini, Nesne ve koleksiyon başlatıcılarını ve Uzantı yöntemlerini destekler.

LINQ sorgularını iki şekilde kullanabiliriz

LINQ sorgu Sözdizimi yapısı, .NET Sistem yorumu 3.5 veya Üzeri olarak tanımlanan sorgu anahtar sözcüklerinden oluşur. Bu, yazılım mühendisinin veya geliştiricilerin, hızları kullanmadan koddaki (C# veya VB.NET) SQL tasarımına çok benzer şekilde talimatlar oluşturmasına olanak tanır. Aynı şekilde Soru Artikülasyon Dilbilgisi de bilinmektedir. LINQ'da, aşağıdaki stratejileri kullanarak IEnumerable serisine veya IQueryable bilgi kaynaklarına yönelik sorgulamayı oluşturabilirsiniz:

1. Sorgu Söz Dizimi:

LINQ sorgu dili sözdizimi from anahtar sözcüğüyle başlar ve Select veya GroupBy anahtar sözcüğüyle biter. Anahtar kelimeden sonra ihtiyacınıza göre gruplama, filtreleme vb. çeşitli Standart Sorgu işlemlerinden yararlanabilirsiniz. LINQ'da 50 benzersiz Standart Soru Yöneticisi türüne erişilebilir.

Sorgu sözdizimini yazma adımları:

Aşama 1: İlk adımda kod içerisine System.Linq namespace’ini eklememiz gerekiyor.

 i.e., using System.Linq; 

Adım 2: İkinci adımda işlemleri gerçekleştireceğimiz veri kaynağını oluşturmalıyız.

 Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ.' ' Any Queries ' }; 

Aşama 3: Üçüncü adımda, select, from gibi bir anahtar kelimeyi kullanarak veri kaynağı için sorgu oluşturmamız gerekiyor.

 Ex: var r = from l in list where l.Contains(' Hii ') select l; 

Burada r, sorgu eklemlemesinin sonucunu saklayan sorgu değişkenidir. Form cümlesi bilgi kaynağını yani listeyi belirlemek için kullanılır, burada koşulun kanala uygulandığı yer yani l.Contains(' Hii ') ve select ifadesi geri getirilen şeylerin türünü verir. Ayrıca l erişim değişkenidir.

Adım-4: Son adım, sorguyu her döngü için kullanarak yürütmektir.

 EX: foreach(var i in r) { Console.WriteLine(i); } 

Sorgu sözdizimine ilişkin örnek program:

 // program to create LINQ query using Query Syntax // step-1: Adding the System.Linq namespace in the code. using System; using System.Linq; using System.Collections.Generic; class HelloWorld { // Main Method static public void Main() { // Step-2: creating the data source on which we have to perform the operations List list = new List() { ' Hii JavaTpoint', ' Welcome to JavaTpoint ', ' The topic is LINQ ', ' Any Queries ' }; // step-3: Creating the LINQ query for the data source using a keyword like select, from, etc. var r = from l in list where l.Contains(' JavaTpoint') select l; // In this will print only the sentence which contains JavaTpoint word // step-4: Executing LINQ Query using the for each loop foreach(var i in r) { Console.WriteLine(i); } } } 

Çıktı:

LINQ nedir?

2. Yöntem Sözdizimi

LINQ'da, Numaralandırılabilir veya Sorgulanabilir statik sınıflara yönelik genişletme yöntemini çağırmak için Yöntem Sözdizimi kullanılır. Aynı zamanda Yöntem Uzantısı Sözdizimi veya Akıcı olarak da adlandırılır. Bununla birlikte, derleyici genellikle derleme zamanında yöntem sözdizimi yapısında sorgu sözdizimini değiştirir. Nerede, Birleştir, Maksimum, Min, Avg, GroupBy Select vb. gibi standart Sorgu operatörünü çağırabilir. Sorgu sözdizimini kullanmadan bunları doğrudan aramanıza izin verilir.

Aşama 1: İlk adımda kod içerisine System.Linq namespace’ini eklememiz gerekiyor.

 i.e., using System.Linq; 

Adım 2: İkinci adımda işlemleri gerçekleştireceğimiz veri kaynağını oluşturmalıyız.

 Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ ' ' Any Queries ' }; 

Aşama 3: Şimdi Enumerable veya Queryable statik sınıfları tarafından sağlanan yöntemleri kullanarak sorguyu oluşturun

 Ex: var r = list.Where(a=> a.Contains(' JavaTpoint ')); 

Burada r, sorgu eklemlemesinin sonucunu saklayan sorgu değişkenidir. Form cümlesi bilgi kaynağını yani listeyi belirlemek için kullanılır, burada koşulun kanala uygulandığı yer yani l.Contains(' Hii ') ve select ifadesi geri getirilen şeylerin türünü verir. Ayrıca l erişim değişkenidir.

Adım-4: Son adım, her döngüyü kullanarak sorguyu yürütmektir.

 EX: foreach(var i in r) { Console.WriteLine(i); } 

Yöntem sözdizimine ilişkin örnek program:

dizi java'yı sıralama
 // program to create LINQ query using Method syntax // step-1: Adding the System.Linq namespace in the code. using System; using System.Linq; using System.Collections.Generic; class HelloWorld { // Main Method static public void Main() { // Step-2: creating the data source on which we have to perform the operations List list = new List() { ' Hii JavaTpoint', ' Welcome to JavaTpoint ', ' The topic is LINQ ', ' Any Queries ' }; //step-3 creating the query using the methods provided by the Enumerable or Queryable static classes var r = list.Where(a=> a.Contains(' JavaTpoint ')); // In this will print only the sentence which contains JavaTpoint word // Executing LINQ Query using the for each loop foreach(var i in r) { Console.WriteLine(i); } } } 

Çıktı:

LINQ nedir?

LINQ'un Avantajları

  1. İstemcinin alternatif bir veri formatı veya veri kaynağı türü için yeni sorgu dilleri öğrenmesi gerekmez.
  2. Kodun netliğini artırır.
  3. Sorgu yeniden kullanılabilir.
  4. Montaj sırasında nesnenin tip kontrolünü sağlar.
  5. Geleneksel koleksiyonlara IntelliSense kazandırır.
  6. Koleksiyonlar veya dizilerle kullanılma eğilimindedir.
  7. LINQ sıralamayı, gruplandırmayı, filtrelemeyi ve sıralamayı destekler.
  8. C# dili ile koordineli olduğundan hata ayıklamayı kolaylaştırır.
  9. SQL verilerini XML verilerine dönüştürmek gibi, birden fazla veri türünü başka bir veri türüne şüphesiz değiştirebileceğinizi öne süren basit bir değişiklik sağlar.