예제 #1
0
            //
            // Constructor Methods
            //

            internal Enumerator(GrowOnlyHashTable <TKey, TValue> owner,
                                T[] values)
            {
                m_owner   = owner;
                m_version = owner.m_version;
                m_index   = 0;
                m_values  = values;
            }
예제 #2
0
        public static GrowOnlySet <TValue> Create <TKey, TValue>(GrowOnlyHashTable <TKey, GrowOnlySet <TValue> > ht,
                                                                 TKey key)
        {
            GrowOnlySet <TValue> set;

            Create(ht, key, out set);

            return(set);
        }
예제 #3
0
        public static GrowOnlySet <TValue> AddWithReferenceEquality <TKey, TValue>(GrowOnlyHashTable <TKey, GrowOnlySet <TValue> > ht,
                                                                                   TKey key,
                                                                                   TValue value) where TValue : class
        {
            GrowOnlySet <TValue> set = CreateWithReferenceEquality(ht, key);

            set.Insert(value);

            return(set);
        }
예제 #4
0
        public static GrowOnlySet <TValue> Add <TKey, TValue>(GrowOnlyHashTable <TKey, GrowOnlySet <TValue> > ht,
                                                              TKey key,
                                                              TValue value)
        {
            GrowOnlySet <TValue> set = Create(ht, key);

            set.Insert(value);

            return(set);
        }
예제 #5
0
        //--//

        public static bool CreateWithReferenceEquality <TKey, TValue>(GrowOnlyHashTable <TKey, GrowOnlySet <TValue> > ht,
                                                                      TKey key,
                                                                      out GrowOnlySet <TValue> set) where TValue : class
        {
            if (ht.TryGetValue(key, out set) == false)
            {
                set = SetFactory.NewWithReferenceEquality <TValue>( );

                ht[key] = set;

                return(false);
            }

            return(true);
        }
예제 #6
0
        public static bool Create <TKey, TValue>(GrowOnlyHashTable <TKey, GrowOnlySet <TValue> > ht,
                                                 TKey key,
                                                 out GrowOnlySet <TValue> set)
        {
            if (ht.TryGetValue(key, out set) == false)
            {
                set = SetFactory.New <TValue>( );

                ht[key] = set;

                return(false);
            }

            return(true);
        }
예제 #7
0
            //
            // Constructor Methods
            //

            public ValueEnumerable(GrowOnlyHashTable <TKey, TValue> owner)
            {
                m_owner = owner;
            }
예제 #8
0
        public static GrowOnlySet <TValue> CreateWithReferenceEquality <TKey, TValue>(GrowOnlyHashTable <TKey, GrowOnlySet <TValue> > ht,
                                                                                      TKey key) where TValue : class
        {
            GrowOnlySet <TValue> set;

            CreateWithReferenceEquality(ht, key, out set);

            return(set);
        }