コード例 #1
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
        public static TSource First <TSource>(IEnumerable <TSource> source)
        {
            if (source == null)
            {
                throw ThrowHelper.ArgumentNull("source");
            }
            IList <TSource> list = source as IList <TSource>;

            if (list == null)
            {
                using (IEnumerator <TSource> enumerator = source.GetEnumerator())
                {
                    if (!enumerator.MoveNext())
                    {
                        throw ThrowHelper.NoElements();
                    }
                    else
                    {
                        return(enumerator.Current);
                    }
                }
            }
            else if (list.Count > 0)
            {
                return(list[0]);
            }
            throw ThrowHelper.NoElements();
        }
コード例 #2
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static List <TSource> ToList <TSource>(IEnumerable <TSource> source)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     return(new List <TSource>(source));
 }
コード例 #3
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static IEnumerable <TSource> Skip <TSource>(IEnumerable <TSource> source, int count)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     return(Enumerable.SkipIterator <TSource>(source, count));
 }
コード例 #4
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static IEnumerable <TResult> Select <TSource, TResult>(IEnumerable <TSource> source, Func <TSource, int, TResult> selector)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     if (selector == null)
     {
         throw ThrowHelper.ArgumentNull("selector");
     }
     return(Enumerable.SelectIterator <TSource, TResult>(source, selector));
 }
コード例 #5
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static TSource[] ToArray <TSource>(IEnumerable <TSource> source)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     TSource[] array = source as TSource[];
     if (array != null)
     {
         return(array);
     }
     return(new List <TSource>(source).ToArray());
 }
コード例 #6
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static IEnumerable <TResult> Select <TSource, TResult>(IEnumerable <TSource> source, Func <TSource, TResult> selector)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     if (selector == null)
     {
         throw ThrowHelper.ArgumentNull("selector");
     }
     foreach (TSource item in source)
     {
         yield return(selector(item));
     }
 }
コード例 #7
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static bool Any <TSource>(IEnumerable <TSource> source)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     using (IEnumerator <TSource> enumerator = source.GetEnumerator())
     {
         if (!enumerator.MoveNext())
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
コード例 #8
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static IEnumerable <TSource> Where <TSource>(IEnumerable <TSource> source, Func <TSource, bool> predicate)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     if (predicate == null)
     {
         throw ThrowHelper.ArgumentNull("predicate");
     }
     foreach (TSource item in source)
     {
         if (predicate(item))
         {
             yield return(item);
         }
     }
 }
コード例 #9
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
 public static TSource FirstOrDefault <TSource>(IEnumerable <TSource> source, Func <TSource, bool> predicate)
 {
     if (source == null)
     {
         throw ThrowHelper.ArgumentNull("source");
     }
     if (predicate == null)
     {
         throw ThrowHelper.ArgumentNull("predicate");
     }
     foreach (TSource item in source)
     {
         if (predicate(item))
         {
             return(item);
         }
     }
     return(default(TSource));
 }
コード例 #10
0
ファイル: Enumerable.cs プロジェクト: zyj0021/EasyDb.NET
        public static Dictionary <TKey, TElement> ToDictionary <TSource, TKey, TElement>(IEnumerable <TSource> source, Func <TSource, TKey> keySelector, Func <TSource, TElement> elementSelector, IEqualityComparer <TKey> comparer)
        {
            if (source == null)
            {
                throw ThrowHelper.ArgumentNull("source");
            }
            if (keySelector == null)
            {
                throw ThrowHelper.ArgumentNull("keySelector");
            }
            if (elementSelector == null)
            {
                throw ThrowHelper.ArgumentNull("elementSelector");
            }
            Dictionary <TKey, TElement> tKeys = new Dictionary <TKey, TElement>(comparer);

            foreach (TSource tSource in source)
            {
                tKeys.Add(keySelector(tSource), elementSelector(tSource));
            }
            return(tKeys);
        }