You can also perform Grouping in LINQ to Objects using a LINQ Query.
This LINQ query uses the group keyword to group the Books data by pages.
Additionally, because a group action does not naturally result in any output, the query creates a custom query projection using the techniques discussed earlier.
Using LINQ to do this grouping enables you to significantly reduce the lines of code required.
This is also improve the readability and clarity of the code.
C# Example :
VB.net Example :
This LINQ query uses the group keyword to group the Books data by pages.
Additionally, because a group action does not naturally result in any output, the query creates a custom query projection using the techniques discussed earlier.
Using LINQ to do this grouping enables you to significantly reduce the lines of code required.
This is also improve the readability and clarity of the code.
C# Example :
public class Books { public string Title { get; set; } public string ISBN { get; set; } public DateTime ReleaseDate { get; set; } public int Pages { get; set; } } protected void Page_Load(object sender, EventArgs e) { var bookslist = GetBooksList(); //var query = from bl in bookslist select bl; var query = from bl in bookslist group bl by bl.Pages into g select new {Pages= g.Key,Count=g.Count() }; this.gvBooks.DataSource = query; this.gvBooks.DataBind(); } public List<Books> GetBooksList() { return new List<Books> { new Books { Title="ASP.NET",ISBN="asp1",ReleaseDate= DateTime.Parse( "11/11/2010") ,Pages=200}, new Books { Title="C#.NET",ISBN="c#2",ReleaseDate= DateTime.Parse( "10/11/2010") ,Pages=500}, new Books { Title="VB.NET",ISBN="vb3",ReleaseDate= DateTime.Parse( "5/5/2009") ,Pages=400}, new Books { Title="SQL Server",ISBN="sql4",ReleaseDate= DateTime.Parse( "6/9/2010"),Pages=300 }, new Books { Title="JAVA",ISBN="java5",ReleaseDate= DateTime.Parse( "8/5/2011"),Pages=400 } }; }
VB.net Example :
Public Class Books Public Property Title() As String Public Property ISBN As String Public Property ReleaseDate As Date Public Property Pages As Integer End Class Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim bookslist = GetBooksList() 'Dim query = From bl In bookslist _ ' Select bl Dim query = From bl In bookslist _ Group By bl.Pages Into g = Group, Count() gvBooks.DataSource = query gvBooks.DataBind() End Sub Public Function GetBooksList() As List(Of Books) Dim lstBooks As New List(Of Books) From { _ New Books With {.Title = "ASP.NET", .ISBN = "asp1", .ReleaseDate = DateTime.Parse("11/11/2010"), .Pages = 200}, _ New Books With {.Title = "C#.NET", .ISBN = "c#2", .ReleaseDate = DateTime.Parse("10/11/2010"), .Pages = 500}, _ New Books With {.Title = "VB.NET", .ISBN = "vb3", .ReleaseDate = DateTime.Parse("5/5/2009"), .Pages = 400}, _ New Books With {.Title = "SQL Server", .ISBN = "sql4", .ReleaseDate = DateTime.Parse("6/9/2010"), .Pages = 300}, _ New Books With {.Title = "JAVA", .ISBN = "java5", .ReleaseDate = DateTime.Parse("8/5/2011"), .Pages = 400}} Return lstBooks End Function
You have a very nice blog :)
ReplyDeletehttp://android-er.blogspot.com/
Hi,
DeleteThanks for your valuable comments.
I like it, clever
ReplyDeleteHi Marek,
DeleteThanks for your valuable comments.