Friday, June 17, 2011

Partitioning Operators

============================================================================
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var first3Numbers = numbers.Take(3);
Console.WriteLine("First 3 numbers:");
foreach (var n in first3Numbers)
{
Console.WriteLine(n);


============================================================================




{
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var allButFirst4Numbers = numbers.Skip(4);
Console.WriteLine("All but first 4 numbers:");
foreach (var n in allButFirst4Numbers)
{
Console.WriteLine(n);
}
}

Result

All but first 4 numbers:
9
8
6
7
2
0

==============================================================================
Take While


int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
Console.WriteLine("First numbers less than 6:");
foreach (var n in firstNumbersLessThan6)
{
Console.WriteLine(n);
}

First numbers less than 6:
5
4
1
3
================================================================================

Skipwhile

int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var allButFirst3Numbers = numbers.SkipWhile(n => n % 3 != 0);
Console.WriteLine("All elements starting from first element divisible by 3:");
foreach (var n in allButFirst3Numbers)
{
Console.WriteLine(n);
}

All elements starting from first element divisible by 3:
3
==================================================================================

Aggregate OPERATORS

================================================
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

int oddNumbers = numbers.Count(n => n % 2 == 1);

Console.WriteLine("There are {0} odd numbers in the list.", oddNumbers);
================================================
double startBalance = 100.0;

int[] attemptedWithdrawals = { 20, 10, 40, 50, 10, 70, 30 };

double endBalance =
attemptedWithdrawals.Aggregate(startBalance,
(balance, nextWithdrawal) =>
((nextWithdrawal <= balance) ? (balance - nextWithdrawal) : balance));

Console.WriteLine("Ending balance: {0}", endBalance);
=================================================

Element Operators in linq.

string[] strings = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };



string startsWithO = strings.First(s => s[0] == 'o');



Console.WriteLine("A string starting with 'o': {0}", startsWithO);


======================================================

int[] numbers = { };



int firstNumOrDefault = numbers.FirstOrDefault();



Console.WriteLine(firstNumOrDefault);

output 0
================================================