گروه بندی داده ها
در LINQ گروه بندی داده ها بسیار ساده است ، استفاده از این دستور نیز همانند استفاده آن در SQL می باشد.
برای نشان دادن چگونگی استفاده از این دستور و نیز راحتی کار با LINQ ما مثال شماره 4 را که قبلا با کد های زیاد و پیچیده ای نوشته بودیم را با استفاده از LINQ بازنویسی میکنیم. مثال زیر چگونگی این کار را به شما نمایش می دهد.
مثال 11 : گروه بندی داده ها با استفاده از پرس و جوی 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 _
Group By m.Genre Into g = Group, Count()
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
group m by m.Genre into g
select new { Genre = g.Key, Count = g.Count() };
this.GridView1.DataSource = query;
this.GridView1.DataBind();
}
در این پرس و جو با استفاده از کلمه کلیدی group فیلم ها را بر اسای ژانرشان گروه بندی کردیم.
علاوه بر این ، به دلیل اینکه در گروه بندی داده ها در خروجی چیزی نمایش داده نمیشود با استفاده از ایجاد طرح در پرس و جو ها ، پرس و جو را سفارشی کردیم(رجوع به مثال شماره 6) و شماره ی ژانر و تعداد فیلم های در این گروه را برای نمایش در خروجی آوردیم.
استفاده از LINQ برای انجام چنین کاری(گروه بندی داده ها) به شما کمک می کند تا کد های نوشته شده برای رسیدن به هدفتان را بسیار کاهش دهید.
با مقایسه مثال 4 (که در آن گروه بندی داده ها را با روش سنتی انجام دادیم) و مثال 11 که همان کار را با استفاده از LINQ نوشتیم ملاحظه میکنید که تعداد خطوط نوشته شده برای این کار از 18 خط کد ، به 3 خط کد رسیده و علاوه بر آن خوانایی و وضوح کد ها افزایش پیدا کرده است.
در مثال بعدی استفاده از اپراتورهایی نظیر Count, Min, Max, Average, و Sumرا در LINQ نشان خواهیم داد.