Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
where Veri kaynağından döndürülecek öğeleri belirtmek için sorgu ifadesindeki yan tümcesini kullanın. Her kaynak öğeye bir Boole koşulu (koşul) uygular (aralık değişkeni tarafından başvurulur) ve belirtilen koşulun true olduğu öğeleri döndürür. Tek bir sorgu ifadesi birden çok where yan tümce içerebilir ve tek bir yan tümce birden çok koşul alt ifadesi içerebilir.
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
Aşağıdaki örnekte yan tümcesi where , beşten küçük olanlar dışında tüm sayıları filtreler. Yan tümcesini where kaldırırsanız, sorgu veri kaynağındaki tüm sayıları döndürür. İfade num < 5 , sorgunun her öğe için geçerli olduğu koşuldur.
class WhereSample
{
static void Main()
{
// Simple data source. Arrays support IEnumerable<T>.
int[] numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];
// Simple query with one predicate in where clause.
var queryLowNums =
from num in numbers
where num < 5
select num;
// Execute the query.
foreach (var s in queryLowNums)
{
Console.Write(s.ToString() + " ");
}
}
}
//Output: 4 1 3 2 0
Tek where bir yan tümce içinde , && ve || işleçlerini kullanarak gerektiği kadar koşul belirtebilirsiniz. Aşağıdaki örnekte sorgu, yalnızca beşten küçük çift sayıları seçmek için iki koşul belirtir.
class WhereSample2
{
static void Main()
{
// Data source.
int[] numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];
// Create the query with two predicates in where clause.
var queryLowNums2 =
from num in numbers
where num < 5 && num % 2 == 0
select num;
// Execute the query
foreach (var s in queryLowNums2)
{
Console.Write(s.ToString() + " ");
}
Console.WriteLine();
// Create the query with two where clause.
var queryLowNums3 =
from num in numbers
where num < 5
where num % 2 == 0
select num;
// Execute the query
foreach (var s in queryLowNums3)
{
Console.Write(s.ToString() + " ");
}
}
}
// Output:
// 4 2 0
// 4 2 0
Yan where tümce, Boole değerleri döndüren bir veya daha fazla yöntem içerebilir. Aşağıdaki örnekte yan tümcesi, where aralık değişkeninin geçerli değerinin çift mi yoksa tek mi olduğunu belirlemek için bir yöntem kullanır.
class WhereSample3
{
static void Main()
{
// Data source
int[] numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];
// Create the query with a method call in the where clause.
// Note: This won't work in LINQ to SQL unless you have a
// stored procedure that is mapped to a method by this name.
var queryEvenNums =
from num in numbers
where IsEven(num)
select num;
// Execute the query.
foreach (var s in queryEvenNums)
{
Console.Write(s.ToString() + " ");
}
}
// Method may be instance method or static method.
static bool IsEven(int i) => i % 2 == 0;
}
//Output: 4 8 6 2 0
Açıklamalar
where yan tümcesi bir filtreleme mekanizmasıdır. İlk veya son yan tümcesi olması dışında sorgu ifadesinde neredeyse her yere konumlandırabilirsiniz. Kaynak where öğeleri gruplandırılmadan önce veya sonra filtrelemeniz gerekip gerekmediğine bağlı olarak, bir yan tümce bir grup yan tümcesinin önünde veya sonrasında görünebilir.
Veri kaynağındaki öğeler için geçerli olmayan bir koşul belirtirseniz, sorgu derleme zamanı hatasıyla sonuçlanır. Bu hata, LINQ'in sağladığı güçlü tür denetiminin avantajlarından biridir.
Derleme zamanında anahtar sözcüğü Standart where Sorgu İşleci yöntemine yapılan bir çağrıya Where dönüştürülür.