Friday, 9 March 2012

How to use Fist() Extension with all Overloads?

Yes, First() is one extension method which has overloads also how to use these overloads
we will see now
 public static TSource First<TSource>(this IEnumerable<TSource> source);
 public static TSource First<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);


First: Retrieves the first occurrence

Ex1:

       int[] intarr1 = new int[5];
            intarr1[0] = 150;
            intarr1[1] = 80;
            intarr1[2] = 25;
            intarr1[3] = 150;
            intarr1[4] = 14;
          int i = intarr1.First<int>();
   int j = intarr1.First<int>(x => x == 25); // matching so no error

  // not matching value throug exception so go for FirstOrDefault.

   int k = intarr1.FirstOrDefault<int>(x => x == 125); 
  // not matching even no error by because we uses FirstOrDefault extension method
            Console.WriteLine(i);
            Console.WriteLine(j);
            Console.WriteLine(k);
           int l = intarr1.FirstOrDefault(); 
            Console.WriteLine(l);
Output:150,
25
0[zero]-no matching[if matching returns same value.
150---l value.

 Here i means in total collection or array FirstElement returns;
 Here j means in total collection or array Matching Element of Conditation Only.
Here m menas in total collection or array matching Element is not found returns default value 0[zero].

 Imp Notes:
          Note: Duplicate are acceptable.
           Note: FirstOrDefault returns if matchs the element returns the matched element.
So every Extension has Specific meaning.


No comments:

Post a Comment