• Home
  • About
  • BestBloggingIdeas
  • DotNetLearningSource
  • FORUM
  • Joblinks
  • Latest News
  • Policy
  • POSTS
  • SimplySqlServer.Com && SimplyAspDotNet.Com
  • Sitemap

Join Ours Forum

Asp.Net,C#,Ajax,Sql server,silverlight,Javascript codes exambles articles,Programming exambles

RSS Feed
  • Bounty Huge Roll [Amazon Frustration-Free Packaging]
  • XML Introduction to XML VHS Video Training, 1 hr., 32 minutes.
  • The Basic Overview of Windows Mobile Development Asp.Net C#
  • Overview of Sql server extended properties Asp.Net C#
  • How to Use Sql Server Extended properties using visual studio Asp.Net C#
  • Adobe Dreamweaver Templates Accelerate Web Development
  • Top Tips for Web Design Projects
  • How to Achieve a Good Web Design Structure
  • To Use Or Not To Use Website Templates
  • Five Tips to a Successful Website
  • Top 10 Articles,


    Silverlight Datagrid Select Update Delete Insert Asp.Net C#

    Differences Similarities Benefits Between Typed Datasets and Untyped Datasets asp.net c#

    Linq to Sql Introduction Entities Ado.Net C# SqlClasses Attributes Linq Mapping

    Linq Programming/How Linq Works?/Linq Implementation In Asp.Net C# Ado.Net

    Performing Developing Using Investigating Asp.Net 2.0 Ajax Application Development Asp.Net C#

    Hosting/Install Wcf Services in a Windows Service Asp.Net C#

    Connecting Silverlight to Wcf Asp.Net C#

    Silverlight Data Grid Data Binding WCF Asp.Net C#

    Invoking/Accessing/Calling WCF Service Without Adding/Creating Proxy/Reference Asp.Net C#

    Performing Doing Creating Insert Update Delete sql data Using Linq Database Asp.Net C#

    Filtering/Retrieving/Getting Items in Generic Collection Asp.Net C#

    Posted by james on April 26, 2011 Leave a comment (0) Go to comments

    To filter items in a generic collection, we use the FindAll method with a match predicate—a predicate that returns true when an item in the collection meets our custom filter criteria.

    Let’s dig into some examples. To begin with, we’ll look at how we can use the List.FindAll method to find all employees who are managers by filtering them from a collection of Employees; we’ll name this method GetManagers. The syntax for defining the collection of employees is List.

    To keep things simple, we’ll assume that we have in place a basic Employee class, and a method called GetEmployees for retrieving Employee objects from the database:

    Employee.cs (excerpt)

    public class Employee : Person {

    public int EmployeeID;

    public bool IsManager;

    }

    public List GetEmployees() {

    return new List();

    }

    Our GetManagers method will first retrieve all employees. We’ll then call FindAll and pass the IsManager method as the match predicate:

    public List GetManagers()

    {

    List employeeList = GetEmployees();

    return employeeList.FindAll(IsManager);

    }

    public bool IsManager(Employee emp)

    {

    return emp.IsManager == true;

    }

    Great! The FindAll method iterated through the collection and jumped into the IsManager function for each Employee in the list. Every time the function returned true, FindAll added the Employee to the list of managers.

    We can simplify this process slightly by replacing that IsManager method with an anonymous delegate.

    Whoah—the jargon is flowing thick and fast now! Let’s break that down:

    *

    A delegate is a type of function pointer. Unlike the function pointers that are used in languages such as C and C++, delegates are both object oriented and type-safe. For a deeper understanding of delegates, read the MSDN article “An Introduction to Delegates” by Jeffrey Richter.

    *

    An anonymous delegate is a delegate function that is declared inline.

    Some predicates don’t offer any values as reusable functions, so using an anonymous delegate allows us to specify a return value that we can actually use, while at the same time keeping our code simple. Here’s how our GetManagers function looks once we introduce an anonymous delegate predicate:

    Predicates.aspx.cs (excerpt)

    public List GetManagers()

    {

    List employeeList = GetEmployees();

    return employeeList.FindAll(

    delegate (Employee emp)

    { return emp.IsManager == true; }

    );

    }

    As you can see, the result is identical functionality that’s achieved using less code.

    There’s another case that might cause you to use anonymous delegates: the situation that arises when a predicate needs additional parameters. List methods like Find and FindAll take a single parameter of type Predicate. In English, this means that the predicate doesn’t have access to anything other than the item in the collection to which it’s being passed.

    To see what I’m talking about, let’s experiment with a function that looks up an Employee by the Employee’s id. Here’s how you might try to write this function without using an anonymous delegate:

    public static Employee Get(int id)

    {

    List EmployeeList = GetEmployees();

    return EmployeeList.Find(

    EmployeeMatch(Employee employee, int id)

    );

    }

    // THIS DOESN’T COMPILE – NOT A VALID PREDICATE

    public static bool EmployeeMatch(Employee employee, int id)

    {

    return employee.EmployeeID == id;

    }

    Unfortunately, that code won’t compile—try, and you’ll receive a series of errors. The compiler can’t make sense of our attempt to pass two parameters to the predicate, and goes looking for additional parentheses and semicolons to compensate. This is because Find(Predicate) method can accept only one parameter—the generic type object (in this case, Employee). Here, we can use an anonymous delegate to write our logic inside the Get function, and give us access to the id parameter:

    Listing 2.5: Predicates.aspx.cs (excerpt)

    public Employee Get(int id)

    {

    List employeeList = GetEmployees();

    return employeeList.Find(

    delegate(Employee emp)

    { return emp.EmployeeID == id; }

    );

    }

    This procedure is referred to as local variable capturing; in this case it’s the id that has been “captured.”

    ASP.NETAspNet, Collection, FilteringRetrievingGetting, Generic, Items
    ← How to Choose a Source Control for Asp.Net Project C#
    Effectively/Reason For Using Generics in Asp.Net Project C# →

    Learn Easily Using Video Tutorials


    How to choose the right Java IDE – explained Eclipse NetBeans BlueJ

    Developing/Creating/Performing/Configuring Java Applications Using Eclipse IDE

    Step By Step Guide for Download/Install Configure Eclipse IDE for Java

    Editing data with the GridView control Asp.Net C#

    Registering/Configuring Web Controls globally in web.config file asp.net c#

    Registering/Configuring Web Controls globally in web.config file asp.net c#

    Best way to prepare asp.net Interview - Success Stories

    Download Important Questions and PPT's:

    Sql Server Important Questions Online free download

    Dotnet Important Questions Online free download

    Exploring Linq to Sql Process Flow

    Learn how to perform silverlight programming

    Learn OOPs concepts in better and well manner

    Learn Ajax in better and well manner

    Leave a Reply Cancel reply

    Your email address will not be published. Required fields are marked *

    *

    *


    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Enter your email address:

    Delivered by FeedBurner

    • Recent Posts

      • Bounty Huge Roll [Amazon Frustration-Free Packaging]
      • XML Introduction to XML VHS Video Training, 1 hr., 32 minutes.
      • The Basic Overview of Windows Mobile Development Asp.Net C#
      • Overview of Sql server extended properties Asp.Net C#
      • How to Use Sql Server Extended properties using visual studio Asp.Net C#
    • Search by Tags!

      Application AspNet Basic between Black Bluetooth Build Business Collection Consultants Design Development Downloading effective Excel Experts Generics Implement Installing Interview Logic Management Microsoft Minutes Object Outlook Professional Programmer Programming Project Projects Questions Ready Select Server Services Silverlight Source Strings Studio Through using Visual Website Wordpress
    • Archives

      • August 2011
      • June 2011
      • May 2011
      • April 2011
      • March 2011
      • February 2011
      • December 2010
      • November 2010
      • October 2010
      • September 2010
      • August 2010
      • July 2010
      • June 2010
      • May 2010
      • April 2010
      • March 2010
      • February 2010
      • January 2010
      • December 2009
      • November 2009
      • October 2009
      • September 2009

    Copyright © 2012 NetProgrammingHelp.com

    Δ Top