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

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


Similar Articles
MVC Corporation
MVC Corporation is consulting and IT services based company.