فیلتر کردن پرس و جو ها
LINQ از فیلترینگ هم پشتیبانی میکند . همانطور که قبلا گفتیم LINQ ساختاری شبیه به SQL دارد ، برای شرط گذاری و فیلتر کردن پرس و جو ها از کلمه ی کلیدی where استفاده میشود.
در مثال شماره 3 دیدم که برای فیلتر کردن فیلم ها در یک ژانر خاص بدون استفاده از LINQ باید چه کد هایی را بنویسیم. اینک همان مثال را با استفاده از LINQ بازنویسی میکنیم و شما راحتی کار با LINQ را احساس خواهید کرد.
مثال 9 : اضافه کردن فیلتر (شرط) در پرس و جو های LINQ
کد های VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim movies = GetMovies()
Dim query = From m In movies _
Where m.Genre = 0 _
Select m
Me.GridView1.DataSource = query
Me.GridView1.DataBind()
End Sub
کد های C#
protected void Page_Load(object sender, EventArgs e)
{
var movies = GetMovies();
var query = from m in movies
where m.Genre==0
select m;
this.GridView1.DataSource = query;
this.GridView1.DataBind();
}
دیدم که چگونه با اضافه کردن تنها چند کلمه در پرس و جو (where m.Genre==0) نتیجه تغییر کرد و فقط فیلم هایی که مقدار ژانر آنها برابر با 0 بود نمایش داده شدند.
شما میتوانید در پرس و جو های خود بیش از یک شرط قرار دهید (همانند SQL ) مثال 10 چگونگی اشن کار را به شما نشان میدهد.
مثال 10 : اضافه کردن دو شرط در یک پرس و جو
کد های VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim movies = GetMovies()
Dim query = From m In movies _
Where m.Genre = 0 And m.Runtime > 92 _
Select m
Me.GridView1.DataSource = query
Me.GridView1.DataBind()
End Sub
کد های C#
protected void Page_Load(object sender, EventArgs e)
{
var movies = GetMovies();
var query = from m in movies
where m.Genre == 0 && m.RunTime > 92
select m;
this.GridView1.DataSource = query;
this.GridView1.DataBind();
}
مثال بالا شامل دو شرط است که برای محدود کردن لیست فیلم ها در یک ژانر خاص و زمان اجرا فیلم به کار میرود.
در پست بعدی گروه بندی داده ها را مطرح خواهیم کرد.