Reader Level:
Articles

Play With Last () / LastOrDefault () and SequenceEqual in LINQ

By Vijay Prativadi on November 19, 2012
Today, in this article let’s play around with one of the interesting and most useful concepts in LINQ.
  • 0
  • 0
  • 3309

Last () / LastOrDefault ()

Question: What are these?

Please refer to the following table:

LINQ-method-operation.gif

Step 1: Create a new WebForm project

Create-WebForm project.png

Step 2: The complete code of WebForm1.aspx looks like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="LAST_LASTorDefaultLINQApp.WebForm1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <style type="text/css">
        .grid
        {
            margin-top: 50px;
        }
    </style
>
    <title></title>
</head>
<
body>
    <form id="form1" runat="server">
    <center>
        <div>
            <table>
                <tr>
                    <td colspan="2" align="center">
                        <asp:Label ID="Label1" runat="server" Text="Play with Last/LastOrDefault using LINQ"
                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <asp:Button ID="Button1" runat="server" Text="Last()" Font-Names="Verdana" Width="213px"
                            BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <asp:Button ID="Button2" runat="server" Text="LastOrDefault()" Font-Names="Verdana"
                            Width="213px" BackColor="Orange" Font-Bold="True" OnClick="Button2_Click" />
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <asp:GridView ID="GridView1" runat="server" CssClass="grid" BackColor="LightGoldenrodYellow"
                            BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None">
                            <AlternatingRowStyle BackColor="PaleGoldenrod" />
                            <FooterStyle BackColor="Tan" />
                            <HeaderStyle BackColor="Tan" Font-Bold="True" />
                            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
                            <SortedAscendingCellStyle BackColor="#FAFAE7" />
                            <SortedAscendingHeaderStyle BackColor="#DAC09E" />
                            <SortedDescendingCellStyle BackColor="#E1DB9C" />
                            <SortedDescendingHeaderStyle BackColor="#C2A47B" />
                        </asp:GridView>
                    </td>
                </tr>
            </table>
        </div>
    </center>
    </form>
</body>
</
html>

Step 3: The complete code of WebForm1.aspx.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace
LAST_LASTorDefaultLINQApp
{
    public partial class WebForm1 : System.Web.UI.
Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            var query = objEntities.Employee.ToList<Employee>().Last();
            var querylist = new List<Employee> { query };
            GridView1.DataSource = querylist;
            GridView1.DataBind();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            var query = objEntities.Employee.ToList<Employee>().LastOrDefault();
            var querylist = new List<Employee> { query };
            GridView1.DataSource = querylist;
            GridView1.DataBind();
        }
        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();
        #endregion
    }
}


Step 4: The output of the application looks like this:

LastOrDefault-in-LINQ1.png

Step 5: The Last () operation output of the application looks like this:

LastOrDefault-in-LINQ2.png

SequenceEqual

Question: What is play with SequenceEqual using LINQ?

In simple terms "It provides flexibility to query requested data sources to make sure the data is equal as per the requirements considered".

Step 1: Create a new WebForm project

Create-ASP.NET-Application.gif

Step 2: The complete code of WebForm1.aspx looks like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="LINQApp.WebForm1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<
body>
    <form id="form1" runat="server">
    <center>
        <div>
            <table>
                <tr>
                    <td colspan="2" align="center">
                        <asp:Label ID="Label1" runat="server" Text="Play with Sequence Equal using LINQ"
                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>
                    </td>
                </tr>
            </table>
        </div>
    </center>
    </form>
</body>
</
html>

Step 3: The complete code of WebForm1.aspx.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace
LINQApp
{
    public partial class WebForm1 : System.Web.UI.
Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var query1 = objEntities.Employee.ToList().Select(r=>r.Location);
            var query2 = objEntities.Department.ToList().Select(r =>r.Location);
            bool result = query1.SequenceEqual(query2);
            Label obj_Label = new Label();
            obj_Label.Text = "The Result is: " + result;
            obj_Label.ForeColor = System.Drawing.Color.Green;
            this.Page.Controls.Add(obj_Label);
        }
        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();
        #endregion
    }
}

Step 4: The output of the application looks like this:

SequenceEqual-in-LINQ.gif

I hope this article is useful for you. I look forward for your comments and feedback.Thanks Vijay Prativadi

Vijay Prativadi

Hey Everyone, It's Vijay. I am SDE mostly up on Microsoft Technologies. If you are thinking to know what I do mostly when at work. I get a chance to work upon few Microsoft technologies. All the way along my core tech... Read more

COMMENT USING

Trending up