Sorgu söz dizimi ve yöntem söz dizimi
Aynı LINQ işlemini sorgu veya yöntem söz dizimiyle yazın; derleyicinin dönüşümünü ve hangi durumda hangi biçimin seçileceğini görün.
Sorgu söz dizimi ve yöntem söz dizimi, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.
İki söz dizimi
LINQ'in iki görünümü:
- Yöntem söz dizimi: xs.Where(...).Select(...)
- Sorgu söz dizimi: from x in xs where ... select ...
- Çoğu işleç için birbirleriyle eşdeğerdirler.
Yöntem söz dizimi
Yöntem söz dizimi, Where ve Select gibi uzantı yöntemlerini zincirler.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "dog", "tiger", "ant", "eagle" };
var result = words
.Where(w => w.Length >= 4)
.Select(w => w.ToUpper());
foreach (string w in result) Console.WriteLine(w);
}
}
Sorgu söz dizimi
Sorgu söz dizimi SQL gibi okunur: from, where, select. Derleyici bunu yöntem çağrılarına dönüştürür.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "dog", "tiger", "ant", "eagle" };
var query =
from w in words
where w.Length >= 4
select w.ToUpper();
foreach (string w in query) Console.WriteLine(w);
}
}
Her iki biçimde sıralama
Her iki biçim de süzmeyi, sıralamayı ve izdüşüm oluşturmayı destekler. Aynı sonuçları üretirler.
using System;
using System.Linq;
public sealed class City
{
public string Name;
public int Pop;
public City(string name, int pop) { Name = name; Pop = pop; }
}
public class Program
{
public static void Main(string[] args)
{
City[] cities = new City[]
{
new City("Rome", 2873000),
new City("Oslo", 634000),
new City("Riga", 605000),
new City("Rio", 6748000)
};
// Method
var m = cities
.Where(c => c.Pop >= 700000)
.OrderBy(c => c.Name)
.Select(c => c.Name);
// Query
var q =
from c in cities
where c.Pop >= 700000
orderby c.Name ascending
select c.Name;
foreach (string name in m) Console.WriteLine(name);
Console.WriteLine("---");
foreach (string name in q) Console.WriteLine(name);
}
}
Biçimleri birleştirme
Her işlecin bir sorgu anahtar sözcüğü yoktur. Biçimleri birleştirmek yaygındır: bir sorgu yazıp ardından Count, Skip, Take veya ThenBy çağırabilirsiniz.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 5, 3, 9, 1, 7, 2, 8 };
// Query + method mix: query part, then Count() method
var q =
from n in data
where n > 3
select n;
int howMany = q.Count(); // no query keyword for Count
Console.WriteLine("Count >3 = " + howMany);
// Paging usually uses method syntax
var page = data.OrderBy(n => n).Skip(2).Take(3);
foreach (int x in page) Console.WriteLine(x);
}
}
Hangisi ne zaman kullanılmalı
Yönergeler:
- Kısa zincirler için ve işleçlerin sorgu anahtar sözcükleri olmadığında yöntem söz dizimini kullanın.
- Birden çok adımlı süzme ve sıralama daha iyi okunuyorsa sorgu söz dizimini kullanın.
- Gerekirse biçimleri birleştirin; birbirleriyle eşdeğerdirler.
Sorgu ve yöntem söz dizimi gerçeği
Özet
Özet: Sorgu ve yöntem söz dizimi, aynı LINQ'in iki görünümüdür. En iyi okunan biçimi seçin; işleçlerin sorgu anahtar sözcükleri olmadığında biçimleri birleştirin.
Sıkça Sorulan Sorular
“Sorgu söz dizimi ve yöntem söz dizimi” dersi ücretsiz mi?
Evet — “Sorgu söz dizimi ve yöntem söz dizimi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.
“Sorgu söz dizimi ve yöntem söz dizimi” dersinde ne öğreneceğim?
Aynı LINQ işlemini sorgu veya yöntem söz dizimiyle yazın; derleyicinin dönüşümünü ve hangi durumda hangi biçimin seçileceğini görün. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.
“Sorgu söz dizimi ve yöntem söz dizimi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- IEnumerable işlem hatları ve ertelenmiş yürütme
- Select, Where, OrderBy, Take/Skip
- Sorgu söz dizimi ve yöntem söz dizimi