Reader Level:
Articles

Distinct and Reverse Operations Using LINQ

By Vijay Prativadi on November 05, 2012
Today, in this article let's play around with the most useful operations "Distinct" and "Reverse" in LINQ.
  • 0
  • 0
  • 4088

Introduction

 

Today, in this article let's play around with the most useful operations "Distinct" and "Reverse" in LINQ.

 

Distinct Operation using LINQ

 

Question: What is a "distinct" operation?

 

In simple terms "It provides filtering of data without any duplication of result sets.".

Step 1: The data in the database looks like this:

Employe-table-in-SQL-Server.jpg

Step 2: Create a new "ASP.NET Web Application", as in:

New-web-Project-in-VS.jpg

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DistinctLINQApp.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="Distinct Operation 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="Select Data" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_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 4: 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 DistinctLINQApp

{

    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 = (from r in objEntities.Employeeselect new

            {

                FirstName = r.FirstName, LastName = r.LastName, Age = r.Age

            }

            ).Distinct();

            GridView1.DataSource = query;GridView1.DataBind();

        }

        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();

        #endregion

    }

}

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

Distinct-operation-in-LINQ.jpg

Step 6: The data retrieved output of the application looks like this:

Retrieved-Distinct-operation-in-LINQ.jpg

Reverse Operation in LINQ-to-XML

 

Question: What is a "reverse" operation using LINQ-to-XML?

In simple terms "It enables performing the result set to be printed in the reverse data format".

Step 1: Create a new "ASP.NET Web Application", as in:

New-Project-in-Visual-Studio.jpg

Step 2: The complete code of Employee.xml looks like this:

<?xml version="1.0" encoding="utf-8" ?>

<employees>

  <Employee Id="1">

    <FirstName>Vijay</FirstName>

    <LastName>Prativadi</LastName>

    <Age>26</Age>

  </Employee>

  <Employee Id="2">

    <FirstName>Swetha</FirstName>

    <LastName>Prativadi</LastName>

    <Age>23</Age>

  </Employee>

  <Employee Id="3">

    <FirstName>Ram</FirstName>

    <LastName>Reddy</LastName>

    <Age>30</Age>

  </Employee>

</employees>

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="LINQReverseOperationApp.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="Reverse Operation 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="Select Data" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_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 4: The complete code 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;

using System.Xml.Linq;

namespace LINQReverseOperationApp

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            XElement employee = XElement.Load(@"c:\users\administrator\documents\visual studio 2010\Projects\LINQReverseOperationApp\LINQReverseOperationApp\Employee.xml");

            var query = (from r in employee.Descendants("FirstName") select new

            {

                FirstName = (string)r

            }).Reverse();

            GridView1.DataSource = query;

            GridView1.DataBind();

        }

    }

}

 

Step 5: The output of application looks like this:

Reverse-operation-in-LINQ.jpg

Step 6: The data retrieved output of application looks like this:

Retrieved-Reverse-operation-output-in-LINQ.jpg

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