Standart Sorgu İşleçlerine Genel Bakış
Standart sorgu işleçleri oluşturan yöntemlerdir Dil ile Tümleşik Sorgu (LINQ) desen.Bu yöntemlerin çoğu türü uygulayan bir nesne olduğu bir sırada sıraları olarak çalışan IEnumerable arabirimi veya IQueryable arabirimi.Standart sorgu işleçleri filtre, projeksiyon, toplama, sıralama ve daha da dahil olmak üzere sorgu yetenekleri sağlar.
İki tür vardır LINQ standart sorgu işleçleri, tür nesneler üzerinde çalışan bir IEnumerable ve diğer tür nesneler üzerinde çalışan IQueryable.Her Kur yapmak yöntemleri statik üyesi olan Enumerable ve Queryable sınıfları, sırasıyla.Olarak tanımlanan uzantısı yöntemleri üzerinde çalışan türü.Diğer bir deyişle, bunlar statik yöntemi sözdiziminin veya örnek yöntemi sözdizimi kullanılarak çağrılabilir.
Buna ek olarak, standart sorgu işleci için birkaç yöntem türlerini temel alan dışındaki karışmayı IEnumerable veya IQueryable.Enumerable Türünü tanımlayan iki yöntem her iki türdeki nesneleri çalışması IEnumerable.Bu yöntemler Cast``1(IEnumerable) ve OfType``1(IEnumerable), organizayonunuzdaki de Sorgulanacak belirlenmi olmayan veya genel olmayan, bir koleksiyon etkinleştirmek LINQ desen.Bunlar kesinlikle yazılı bir koleksiyon nesnelerinin oluşturarak yaparsınız.Queryable Sınıfını tanımlar iki benzer yöntemler Cast``1(IQueryable) ve OfType``1(IQueryable), nesne türü üzerinde çalışmaya Queryable.
Standart sorgu işleçleri bir singleton değeri ya da değerler dizisi dönmek bunlar üzerinde kendi yürütme zamanlaması olarak değişir.Bir tek değer döndüren bu yöntemler (örneğin, Average ve Sum) hemen çalıştırılacak.Bir sıra döndüren yöntemler sorgu yürütme erteleme ve sýralanabilir bir nesne döndürür.
Bellek içi koleksiyonlarıyla uzanan bu yöntem, diğer bir deyişle çalışması yöntemleri olması durumunda, IEnumerable, sýralanabilir nesnesine döndürülen yöntemine iletilen bağımsız yakalar.Bu nesne numaralandırılan sorgu işlecini mantığı görevli ve sorgu sonuçları döndürülür.
Buna karşılık, yöntemleri, genişletme IQueryable herhangi bir sorgulama davranışı uygulamak değil, ancak gerçekleştirilmesi için sorguyu temsil eden bir ifade ağacını oluşturun.Sorgu işleme kaynak tarafından ele IQueryable nesne.
Sorgu yöntemlerine sorguları karmaşık hale gelmesine olanak veren bir sorguda birbirine zincirleme.
Aşağıdaki kod örneği, standart sorgu işleçleri dizisi hakkında bilgi edinmek için nasıl kullanılabileceğini göstermektedir.
Dim sentence = "the quick brown fox jumps over the lazy dog"
' Split the string into individual words to create a collection.
Dim words = sentence.Split(" "c)
Dim query = From word In words
Group word.ToUpper() By word.Length Into gr = Group
Order By Length _
Select Length, GroupedWords = gr
Dim output As New System.Text.StringBuilder
For Each obj In query
output.AppendLine(String.Format("Words of length {0}:", obj.Length))
For Each word As String In obj.GroupedWords
output.AppendLine(word)
Next
Next
'Display the output
MsgBox(output.ToString())
' This code example produces the following output:
'
' Words of length 3:
' THE
' FOX
' THE
' DOG
' Words of length 4:
' OVER
' LAZY
' Words of length 5:
' QUICK
' BROWN
' JUMPS
string sentence = "the quick brown fox jumps over the lazy dog";
// Split the string into individual words to create a collection.
string[] words = sentence.Split(' ');
// Using query expression syntax.
var query = from word in words
group word.ToUpper() by word.Length into gr
orderby gr.Key
select new { Length = gr.Key, Words = gr };
// Using method-based query syntax.
var query2 = words.
GroupBy(w => w.Length, w => w.ToUpper()).
Select(g => new { Length = g.Key, Words = g }).
OrderBy(o => o.Length);
foreach (var obj in query)
{
Console.WriteLine("Words of length {0}:", obj.Length);
foreach (string word in obj.Words)
Console.WriteLine(word);
}
// This code example produces the following output:
//
// Words of length 3:
// THE
// FOX
// THE
// DOG
// Words of length 4:
// OVER
// LAZY
// Words of length 5:
// QUICK
// BROWN
// JUMPS
Sorgu ifade sözdizimi
Daha sık kullanılan standart sorgu işleçlerin bazıları bir parçası olarak çağrılacak sağlayan C# ve Visual Basic dili anahtar sözcük sözdizimi adanmış bir sorguifade. Anahtar sözcükleri ve bunların karşılık gelen sözdizimleri ayrılmış standart sorgu işleçleri hakkında daha fazla bilgi için bkz: Standart Sorgu İşleçleri için Sorgu İfade Sözdizimi.
Standart sorgu işleçler genişletme
Hedef etki alanında veya teknoloji için uygun oluşturma etki alanına özgü yöntemler tarafından belirlenen standart sorgu işleçlerin güçlendirir.Standart sorgu işleçleri, uzak değerlendirme, sorgu çevirisi ve en iyi duruma getirme gibi ek hizmetler sağlayan kendi uygulamaları ile de değiştirebilirsiniz.Bir örnek için bkz. AsEnumerable``1
İlgili Bölümler
Aşağıdaki bağlantılar, işlevlere göre çeşitli standart sorgu işleçleri hakkında ek bilgi sağlayan konuları ulaşmanızı sağlar.
Ayrıca bkz.
Başvuru
Genişletme Yöntemleri (C# Programlama Kılavuzu)
Kavramlar
Standart Sorgu İşleçleri için Sorgu İfade Sözdizimi
Standart Sorgu İşleçlerinin Yürütme Yöntemine Göre Sınıflandırılması