Jean Paul's Blog

There are 2 types of People in the World, One who Likes SharePoint and..

    Advertisements
  • Microsoft MVP

  • MindCracker MVP

  • CodeProject MVP

  • eBook on SharePoint 2010

  • eBook on Design Patterns

  • eBook on Windows Azure

  • NLayers Framework @ CodePlex

  • MSDN Forums

  • .Net vs. Java

    Due to Public Demand
  • Advertisements

Lambda Expressions Extension Method 4 – TakeWhile()

Posted by Paul on May 14, 2011


TakeWhile()

The method TakeWhile() is a tricky method. It will take a condition as parameter and it will return the elements until the condition is true and exists the iteration.

It is not similar to Where() condition. Let me take an example. We have 1, 2, 3, 4, 5, 6 in the list and given a condition TakeWhile(i => I != 2) it will return just 1. The method works like below:

It will go through element 1 and as it satisfies the condition it will be yield returned.

On the second element 2 the condition is false and it will exits.

There is no processing for element 3.

Arguments: Condition

Return Value: List of Items

Example

In the following example we are using a list of integers and the Take() method to select the top n numbers from the list.

private IList<int> _list = new List<int>();

public InitializeList()

{

// Set data

_list.Add(1);

_list.Add(2);

_list.Add(3);

_list.Add(4);

_list.Add(5);

_list.Add(6);

}

private void TakeWhileButton_Click(object sender, EventArgs e)

{

/// TakeWhile method to get a sublist based on condition

var result = _list.TakeWhile(i => i != 2);

foreach (int i in result)

MessageBox.Show(i.ToString());

}

Extension Method Snapshot

You can find the snapshot of the TakeWhile() method usage as provided by Visual Studio

clip_image002

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s