Example #1
0
 public static IList <T> Add <T>(this IList <T> me, Generic.IEnumerable <T> items)
 {
     if (items.NotNull())
     {
         foreach (T item in items)
         {
             me.Add(item);
         }
     }
     return(me);
 }
Example #2
0
 public static Generic.IEnumerable <TResult> AllPermutations <TLeft, TRight, TResult>(this Generic.IEnumerable <TLeft> me, Generic.IEnumerable <TRight> other, Func <TLeft, TRight, TResult> combine)
 {
     if (me.NotNull() && other.NotNull() && combine.NotNull())
     {
         foreach (var meItem in me)
         {
             foreach (var otherItem in other)
             {
                 yield return(combine(meItem, otherItem));
             }
         }
     }
 }
Example #3
0
 public static string Join(this Generic.IEnumerable <string> me)
 {
     System.Text.StringBuilder result = null;
     if (me.NotNull())
     {
         result = new System.Text.StringBuilder();
         Generic.IEnumerator <string> enumerator = me.GetEnumerator();
         while (enumerator.MoveNext())
         {
             result.Append(enumerator.Current);
         }
     }
     return(result?.ToString());
 }
Example #4
0
        public static T First <T>(this Generic.IEnumerable <T> me)
        {
            T result;

            if (me.NotNull())
            {
                using (Generic.IEnumerator <T> enumerator = me.GetEnumerator())
                    result = enumerator.MoveNext() ? enumerator.Current : default(T);
            }
            else
            {
                result = default(T);
            }
            return(result);
        }
Example #5
0
        public static T?FirstOrNull <T>(this Generic.IEnumerable <T> me)
            where T : struct
        {
            T?result;

            if (me.NotNull())
            {
                using (Generic.IEnumerator <T> enumerator = me.GetEnumerator())
                    result = enumerator.MoveNext() ? enumerator.Current : default(T);
            }
            else
            {
                result = null;
            }
            return(result);
        }
Example #6
0
 public static Generic.IEnumerable <T> Append <T>(this Generic.IEnumerable <T> me, Generic.IEnumerable <T> other)
 {
     if (me.NotNull())
     {
         foreach (T item in me)
         {
             yield return(item);
         }
     }
     if (other.NotNull())
     {
         foreach (T item in other)
         {
             yield return(item);
         }
     }
 }
Example #7
0
 public static Generic.IEnumerable <TResult> Zip <TLeft, TRight, TResult>(this Generic.IEnumerable <TLeft> me, Generic.IEnumerable <TRight> other, Func <TLeft, TRight, TResult> combine)
 {
     return(me.NotNull() && other.NotNull() && combine.NotNull() ?
            new Enumerable <TResult>(() => me.GetEnumerator().Zip(other.GetEnumerator(), combine)) :
            Enumerable.Empty <TResult>());
 }
Example #8
0
 public static int Count <T>(this Generic.IEnumerable <T> me)
 {
     return(me.NotNull() ? me.GetEnumerator().Count() : 0);
 }
Example #9
0
 /// <summary>
 /// Copies data of <paramref>me</paramref> into a new array.
 /// </summary>
 /// <param name="me">Block to copy data from.</param>
 /// <returns>A new array containing the data from <paramref>me</paramref>.</returns>
 public static T[] ToArray <T>(this Generic.IEnumerable <T> me)
 {
     return(me.NotNull() ? me.GetEnumerator().ToArray(0) : null);
 }