Aracılığıyla paylaş


LINQ ile C# Dilinde Verileri Filtreleme

Filtreleme, sonuç kümesini yalnızca belirtilen koşulu karşılayan öğeleri içerecek şekilde kısıtlama işlemini ifade eder. Ayrıca, belirtilen koşulla eşleşen öğeleri seçme olarak da adlandırılır.

Önemli

Bu örnekler bir System.Collections.Generic.IEnumerable<T> veri kaynağı kullanır. Veri kaynaklarını ve ifade ağaçlarını System.Linq.IQueryProviderkullanan System.Linq.IQueryable<T> veri kaynakları. İfade ağaçlarının izin verilen C# söz diziminde sınırlamaları vardır. Ayrıca EF Core gibi her IQueryProvider veri kaynağı daha fazla kısıtlama uygulayabilir. Veri kaynağınızın belgelerine bakın.

Aşağıdaki çizimde, bir karakter dizisine filtre uygulama sonuçları gösterilmektedir. Filtreleme işleminin koşulu, karakterin 'A' olması gerektiğini belirtir.

LINQ filtreleme işlemini gösteren diyagram

Seçim gerçekleştiren standart sorgu işleci yöntemleri aşağıdaki tabloda listelenmiştir:

Yöntem Adı Açıklama C# Sorgu İfadesi Söz Dizimi Daha Fazla Bilgi
Oftype Değerleri, belirtilen türe atanma yeteneklerine bağlı olarak seçer. Uygulanamaz. Enumerable.OfType

Queryable.OfType
Konumu Koşul işlevini temel alan değerleri seçer. where Enumerable.Where

Queryable.Where

Aşağıdaki örnek, belirli bir uzunluğa sahip dizeleri bir diziden filtrelemek için yan tümcesini kullanır where .

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query = from word in words
                            where word.Length == 3
                            select word;

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

Yöntem söz dizimini kullanan eşdeğer sorgu aşağıdaki kodda gösterilir:

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query =
    words.Where(word => word.Length == 3);

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

Ayrıca bkz.