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.
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
*/