コード例 #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="comparer"></param>
 internal MyLookup(系统内置接口.IEqualityComparer <TKey> comparer)
 {
     //如果没有传入比较器,那么就调用默认的比较器,默认的比较器是要根据传入的TKey的类型来去创建
     if (comparer == null)
     {
         数据结构.EqualityComparer <TKey> defaultcomparer = new EqualityComparer <TKey>();
         this.comparer = defaultcomparer.Default;
     }
     //设置grouping[]的默认的初始的大小
     groupings = new MyGrouping <TKey, TElement> [7];
 }
コード例 #2
0
ファイル: Enumerable.cs プロジェクト: yanh19930226/SourceCode
        public static 系统内置接口.ILookup <TKey, TSource> ToLookup <TKey, TSource>(this IEnumerable <TSource> source, 内置委托.Func <TSource, TKey> keyselector, 系统内置接口.IEqualityComparer <TKey> comparer)
        {
            MyLookup <TKey, TSource> lookup = new MyLookup <TKey, TSource>(comparer);

            lookup.Create(source, keyselector, 数据结构.IdentityFunction <TSource> .Instance);
            return(lookup);
        }
コード例 #3
0
ファイル: Enumerable.cs プロジェクト: yanh19930226/SourceCode
        /// <summary>
        /// 基本的ToLookup方法
        /// </summary>
        /// <typeparam name="TKey">分组的键</typeparam>
        /// <typeparam name="TSource">数据源中的每一个实体</typeparam>
        /// <typeparam name="TElement">筛选后的数据</typeparam>
        /// <param name="source">数据源</param>
        /// <param name="keyselector">选择分组键的方法</param>
        /// <param name="elementselector">筛选要选取的数据</param>
        /// <param name="comparer">用户定义的比较器</param>
        /// <returns></returns>
        public static 系统内置接口.ILookup <TKey, TElement> ToLookup <TKey, TSource, TElement>(this IEnumerable <TSource> source, 内置委托.Func <TSource, TKey> keyselector, 内置委托.Func <TSource, TElement> elementselector, 系统内置接口.IEqualityComparer <TKey> comparer)
        {
            MyLookup <TKey, TElement> lookup = new MyLookup <TKey, TElement>(comparer);

            lookup.Create(source, keyselector, elementselector);
            return(lookup);
        }
コード例 #4
0
ファイル: Enumerable.cs プロジェクト: yanh19930226/SourceCode
        public static 数据结构.IEnumerable <系统内置接口.IGrouping <TKey, TSource> > GroupBy <TSource, TKey>(this IEnumerable <TSource> source, 内置委托.Func <TSource, TKey> keyselector, 内置委托.Func <TSource, TSource> elementselector, 系统内置接口.IEqualityComparer <TKey> comparer)
        {
            MyLookup <TKey, TSource> lookup = new MyLookup <TKey, TSource>(comparer);

            lookup.Create(source, keyselector, elementselector);
            return(lookup.GetPerGroup());
        }