亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ordereddictionary.cs

?? C#寫的類似于STL的集合類,首先是C#編寫,可以用于.net變程.
?? CS
?? 第 1 頁 / 共 3 頁
字號(hào):
        /// </summary>
        ///<remarks>
        ///<p>Typically, this method is used in conjunction with a foreach statement. For example:
        ///<code>
        /// foreach(KeyValuePair&lt;TKey, TValue&gt; pair in dictionary.Reversed()) {
        ///    // process pair
        /// }
        ///</code></p>
        /// <p>If an entry is added to or deleted from the dictionary while the View is being enumerated, then 
        /// the enumeration will end with an InvalidOperationException.</p>
        ///<p>Calling Reverse does not copy the data in the dictionary, and the operation takes constant time.</p>
        ///</remarks>
        /// <returns>An OrderedDictionary.View of key-value pairs in reverse order.</returns>
        public View Reversed()
        {
            return new View(this, tree.EntireRangeTester, true, true);
        }

        /// <summary>
        /// Returns a collection that can be used for enumerating some of the keys and values in the collection. 
        /// Only keys that are greater than <paramref name="from"/> and 
        /// less than <paramref name="to"/> are included. The keys are enumerated in sorted order.
        /// Keys equal to the end points of the range can be included or excluded depending on the
        /// <paramref name="fromInclusive"/> and <paramref name="toInclusive"/> parameters.
        /// </summary>
        ///<remarks>
        ///<p>If <paramref name="from"/> is greater than or equal to <paramref name="to"/>, the returned collection is empty. </p>
        ///<p>The sorted order of the keys is determined by the comparison instance or delegate used
        /// to create the dictionary.</p>
        ///<p>Typically, this property is used in conjunction with a foreach statement. For example:</p>
        ///<code>
        /// foreach(KeyValuePair&lt;TKey, TValue&gt; pair in dictionary.Range(from, true, to, false)) {
        ///    // process pair
        /// }
        ///</code>
        ///<p>Calling Range does not copy the data in the dictionary, and the operation takes constant time.</p></remarks>
        /// <param name="from">The lower bound of the range.</param>
        /// <param name="fromInclusive">If true, the lower bound is inclusive--keys equal to the lower bound will
        /// be included in the range. If false, the lower bound is exclusive--keys equal to the lower bound will not
        /// be included in the range.</param>
        /// <param name="to">The upper bound of the range. </param>
        /// <param name="toInclusive">If true, the upper bound is inclusive--keys equal to the upper bound will
        /// be included in the range. If false, the upper bound is exclusive--keys equal to the upper bound will not
        /// be included in the range.</param>
        /// <returns>An OrderedDictionary.View of key-value pairs in the given range.</returns>
        public View Range(TKey from, bool fromInclusive, TKey to, bool toInclusive)
        {
            return new View(this, tree.DoubleBoundedRangeTester(NewPair(from), fromInclusive, NewPair(to), toInclusive), false, false);
        }


        /// <summary>
        /// Returns a collection that can be used for enumerating some of the keys and values in the collection. 
        /// Only keys that are greater than (and optionally, equal to) <paramref name="from"/> are included. 
        /// The keys are enumerated in sorted order. Keys equal to <paramref name="from"/> can be included
        /// or excluded depending on the <paramref name="fromInclusive"/> parameter.
        /// </summary>
        ///<remarks>
        ///<p>The sorted order of the keys is determined by the comparison instance or delegate used
        /// to create the dictionary.</p>
        ///<p>Typically, this property is used in conjunction with a foreach statement. For example:</p>
        ///<code>
        /// foreach(KeyValuePair&lt;TKey, TValue&gt; pair in dictionary.RangeFrom(from, true)) {
        ///    // process pair
        /// }
        ///</code>
        ///<p>Calling RangeFrom does not copy of the data in the dictionary, and the operation takes constant time.</p>
        ///</remarks>
        /// <param name="from">The lower bound of the range.</param>
        /// <param name="fromInclusive">If true, the lower bound is inclusive--keys equal to the lower bound will
        /// be included in the range. If false, the lower bound is exclusive--keys equal to the lower bound will not
        /// be included in the range.</param>
        /// <returns>An OrderedDictionary.View of key-value pairs in the given range.</returns>
        public View RangeFrom(TKey from, bool fromInclusive)
        {
            return new View(this, tree.LowerBoundedRangeTester(NewPair(from), fromInclusive), false, false);
        }

        /// <summary>
        /// Returns a collection that can be used for enumerating some of the keys and values in the collection. 
        /// Only items that are less than (and optionally, equal to) <paramref name="to"/> are included. 
        /// The items are enumerated in sorted order. Items equal to <paramref name="to"/> can be included
        /// or excluded depending on the <paramref name="toInclusive"/> parameter.
        /// </summary>
        ///<remarks>
        ///<p>The sorted order of the keys is determined by the comparison instance or delegate used
        /// to create the dictionary.</p>
        ///<p>Typically, this property is used in conjunction with a foreach statement. For example:</p>
        ///<code>
        /// foreach(KeyValuePair&lt;TKey, TValue&gt; pair in dictionary.RangeFrom(from, false)) {
        ///    // process pair
        /// }
        ///</code>
        ///<p>Calling RangeTo does not copy the data in the dictionary, and the operation takes constant time.</p>
        ///</remarks>
        /// <param name="to">The upper bound of the range. </param>
        /// <param name="toInclusive">If true, the upper bound is inclusive--keys equal to the upper bound will
        /// be included in the range. If false, the upper bound is exclusive--keys equal to the upper bound will not
        /// be included in the range.</param>
        /// <returns>An OrderedDictionary.View of key-value pairs in the given range.</returns>
        public View RangeTo(TKey to, bool toInclusive)
        {
            return new View(this, tree.UpperBoundedRangeTester(NewPair(to), toInclusive), false, false);
        }

		#region IDictionary<TKey,TValue> Members

		/// <summary>
		/// Removes the key (and associated value) from the collection that is equal to the passed in key. If
		/// no key in the dictionary is equal to the passed key, false is returned and the 
		/// dictionary is unchanged.
		/// </summary>
		/// <remarks>Equality between keys is determined by the comparison instance or delegate used
		/// to create the dictionary.</remarks>
		/// <param name="key">The key to remove.</param>
		/// <returns>True if the key was found and removed. False if the key was not found.</returns>
        public sealed override bool Remove(TKey key)
        {
            KeyValuePair<TKey, TValue> keyPair = NewPair(key);
			KeyValuePair<TKey, TValue> item;
			return tree.Delete(keyPair, true, out item);
		}

		/// <summary>
		/// Removes all keys and values from the dictionary.
		/// </summary>
        /// <remarks>Clearing the dictionary takes a constant amount of time, regardless of the number of keys in it.</remarks>
        public sealed override void Clear()
        {
            tree.StopEnumerations();  // Invalidate any enumerations.

            // The simplest and fastest way is simply to throw away the old tree and create a new one.
			tree = new RedBlackTree<KeyValuePair<TKey,TValue>>(pairComparer);
		}

        /// <summary>
        /// Finds a key in the dictionary. If the dictionary already contains
        /// a key equal to the passed key, then the existing value is returned via value. If the dictionary
        /// doesn't contain that key, then value is associated with that key.
        /// </summary>
        /// <remarks><para> between keys is determined by the comparison instance or delegate used
        /// to create the dictionary.</para>
        /// <para>This method takes time O(log N), where N is the number of keys in the dictionary. If a value is added, It is more efficient than
        /// calling TryGetValue followed by Add, because the dictionary is not searched twice.</para></remarks>
        /// <param name="key">The new key. </param>
        /// <param name="value">The new value to associated with that key, if the key isn't present. If the key was present, 
        /// returns the exist value associated with that key.</param>
        /// <returns>True if key was already present, false if key wasn't present (and a new value was added).</returns>
        public bool GetValueElseAdd(TKey key, ref TValue value)
        {
            KeyValuePair<TKey, TValue> pair = NewPair(key, value);
            KeyValuePair<TKey, TValue> old;

            bool added = tree.Insert(pair, DuplicatePolicy.DoNothing, out old);
            if (!added) 
                value = old.Value;
            return !added;
        }

        /// <summary>
        /// Adds a new key and value to the dictionary. If the dictionary already contains
        /// a key equal to the passed key, then an ArgumentException is thrown
        /// </summary>
        /// <remarks>
        /// <para>Equality between keys is determined by the comparison instance or delegate used
        /// to create the dictionary.</para>
        /// <para>Adding an key and value takes time O(log N), where N is the number of keys in the dictionary.</para></remarks>
        /// <param name="key">The new key. "null" is a valid key value.</param>
        /// <param name="value">The new value to associated with that key.</param>
        /// <exception cref="ArgumentException">key is already present in the dictionary</exception>
        public sealed override void Add(TKey key, TValue value)
        {
            KeyValuePair<TKey, TValue> pair = NewPair(key, value);
            KeyValuePair<TKey, TValue> dummy;

            bool added = tree.Insert(pair, DuplicatePolicy.DoNothing, out dummy);
            if (! added) 
                throw new ArgumentException(Strings.KeyAlreadyPresent, "key");
        }

        /// <summary>
        /// Changes the value associated with a given key. If the dictionary does not contain
        /// a key equal to the passed key, then an ArgumentException is thrown.
        /// </summary>
        /// <remarks>
        /// <p>Unlike adding or removing an element, changing the value associated with a key
        /// can be performed while an enumeration (foreach) on the the dictionary is in progress.</p>
        /// <p>Equality between keys is determined by the comparison instance or delegate used
        /// to create the dictionary.</p>
        /// <p>Replace takes time O(log N), where N is the number of entries in the dictionary.</p></remarks>
        /// <param name="key">The new key. </param>
        /// <param name="value">The new value to associated with that key.</param>
        /// <exception cref="KeyNotFoundException">key is not present in the dictionary</exception>
        public void Replace(TKey key, TValue value)
        {
            KeyValuePair<TKey, TValue> pair = NewPair(key, value);
            KeyValuePair<TKey, TValue> dummy;

            bool found = tree.Find(pair, true, true, out dummy);
            if (!found)
                throw new KeyNotFoundException(Strings.KeyNotFound);   
        }

        /// <summary>
        /// Adds multiple key-value pairs to a dictionary. If a key exists in both the current instance and dictionaryToAdd,
        /// then the value is updated with the value from <paramref name="keysAndValues>"/> (no exception is thrown).
        /// Since IDictionary&lt;TKey,TValue&gt; inherits from IEnumerable&lt;KeyValuePair&lt;TKey,TValue&gt;&gt;, this
        /// method can be used to merge one dictionary into another.
        /// </summary>
        /// <remarks>AddMany takes time O(M log (N+M)), where M is the size of <paramref name="keysAndValues>"/>, and N is the size of
        /// this dictionary.</remarks>
        /// <param name="keysAndValues">A collection of keys and values whose contents are added to the current dictionary.</param>
        public void AddMany(IEnumerable<KeyValuePair<TKey, TValue>> keysAndValues)
        {
            if (keysAndValues == null)
                throw new ArgumentNullException("keysAndValues");

            foreach (KeyValuePair<TKey, TValue> pair in keysAndValues) {
                this[pair.Key] = pair.Value;
            }
        }

        /// <summary>
        /// Removes all the keys found in another collection (such as an array or List&lt;TKey&gt;). Each key in keyCollectionToRemove
        /// is removed from the dictionary. Keys that are not present are ignored.
        /// </summary>
        /// <remarks>RemoveMany takes time O(M log N), where M is the size of keyCollectionToRemove, and N is this
        /// size of this collection.</remarks>
        /// <returns>The number of keys removed from the dictionary.</returns>
        /// <param name="keyCollectionToRemove">A collection of keys to remove from the dictionary.</param>
        public int RemoveMany(IEnumerable<TKey> keyCollectionToRemove)
        {
            if (keyCollectionToRemove == null)
                throw new ArgumentNullException("keyCollectionToRemove");

            int count = 0;

            foreach (TKey key in keyCollectionToRemove) {
                if (this.Remove(key))
                    ++count;
            }

            return count;
        }

		/// <summary>
		/// Gets or sets the value associated with a given key. When getting a value, if this
		/// key is not found in the collection, then an ArgumentException is thrown. When setting
		/// a value, the value replaces any existing value in the dictionary.
		/// </summary>
        /// <remarks>The indexer takes time O(log N), where N is the number of entries in the dictionary.</remarks>
        /// <value>The value associated with the key</value>
        /// <exception cref="ArgumentException">A value is being retrieved, and the key is not present in the dictionary.</exception>
        /// <exception cref="ArgumentNullException"><paramref name="key"/> is null.</exception>
        public sealed override TValue this[TKey key]
        {
			get
			{
                KeyValuePair<TKey,TValue> pairFound;
				bool found;
				
				found = tree.Find(NewPair(key), false, false, out pairFound);
				if (found)
					return pairFound.Value;
				else
					throw new KeyNotFoundException(Strings.KeyNotFound);
			}
			set

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合色8888| 五月天激情综合| 毛片不卡一区二区| 92国产精品观看| 日韩欧美专区在线| 一区二区三区在线看| 国产一区91精品张津瑜| 欧美酷刑日本凌虐凌虐| 国产精品电影一区二区| 国产.欧美.日韩| 蜜臀va亚洲va欧美va天堂| 91浏览器在线视频| 国产欧美精品一区二区色综合| 日韩影视精彩在线| 在线区一区二视频| 国产午夜精品一区二区三区四区| 丝袜亚洲另类欧美综合| 91麻豆精品秘密| 国产精品传媒入口麻豆| 国产精品正在播放| 精品国产免费一区二区三区香蕉| 午夜视频一区二区| 一本一道久久a久久精品综合蜜臀| 国产日韩高清在线| 国产自产高清不卡| 精品国产一区二区亚洲人成毛片| 日韩国产精品大片| 欧美自拍偷拍午夜视频| 亚洲免费观看高清在线观看| 99久久婷婷国产综合精品| 国产亚洲欧美一区在线观看| 久久精品理论片| 日韩一区二区免费在线电影| 天天综合色天天| 欧美精品乱码久久久久久| 亚洲一二三四久久| 成人av免费在线播放| 中文字幕第一区二区| 国产999精品久久久久久| 国产婷婷色一区二区三区| 国产精品亚洲人在线观看| 日韩免费性生活视频播放| 日韩极品在线观看| 91精品久久久久久久91蜜桃| 免费一级欧美片在线观看| 日韩区在线观看| 国产在线精品免费av| 久久久久久久免费视频了| 国产精品资源网| 国产欧美日本一区视频| 成人蜜臀av电影| 亚洲欧洲成人自拍| www.亚洲色图.com| 亚洲麻豆国产自偷在线| 欧美性受xxxx| 午夜精品视频一区| 欧美一级午夜免费电影| 蜜桃久久av一区| 久久精品一区二区三区四区| 国产成人免费在线观看| 欧美激情在线免费观看| 色综合久久88色综合天天免费| 亚洲综合男人的天堂| 欧美另类高清zo欧美| 免费看精品久久片| 国产亚洲一区二区三区在线观看 | 久久午夜羞羞影院免费观看| 国产一区二区三区精品视频| 日本一区二区三区电影| 色一区在线观看| 亚洲18影院在线观看| 日韩一级高清毛片| 丰满放荡岳乱妇91ww| 亚洲免费看黄网站| 69久久夜色精品国产69蝌蚪网| 久久av资源站| 中文在线免费一区三区高中清不卡| aaa国产一区| 天堂蜜桃一区二区三区| 久久综合九色综合欧美亚洲| 成人av在线资源网站| 亚洲图片有声小说| 日韩精品一区二区三区中文不卡| 成人三级伦理片| 一区二区三区日韩欧美| 91精品黄色片免费大全| 国产成人精品一区二区三区网站观看| 日韩毛片高清在线播放| 欧美人牲a欧美精品| 国产经典欧美精品| 亚洲尤物视频在线| 精品国偷自产国产一区| 94-欧美-setu| 六月丁香综合在线视频| 17c精品麻豆一区二区免费| 91精品国产综合久久久蜜臀图片| 国产成人在线免费观看| 亚洲一区二区三区不卡国产欧美| 欧美精品一区在线观看| 在线免费观看日本一区| 久久精品国产色蜜蜜麻豆| 亚洲欧美综合在线精品| 日韩美女视频在线| www.久久精品| 久久成人麻豆午夜电影| 成人免费一区二区三区视频| 日韩精品一区二区三区在线观看| 色狠狠一区二区| 国产九色精品成人porny| 91福利在线免费观看| 国产精品乱码妇女bbbb| 在线不卡一区二区| 成人激情开心网| 美腿丝袜在线亚洲一区| 樱花影视一区二区| 国产亚洲精品bt天堂精选| 91精品免费在线观看| 色婷婷综合久久久久中文 | 亚洲国产成人91porn| 国产日韩精品一区| 欧美成人aa大片| 欧美日韩中文字幕精品| av成人动漫在线观看| 精品夜夜嗨av一区二区三区| 亚洲香肠在线观看| 综合久久综合久久| 久久精品人人做人人综合 | av网站免费线看精品| 精品在线播放午夜| 天堂在线亚洲视频| 尤物av一区二区| 日韩美女久久久| 国产精品热久久久久夜色精品三区| 日韩精品最新网址| 777亚洲妇女| 欧洲一区二区av| 色综合久久88色综合天天6| 成人精品高清在线| 国产成a人亚洲| 韩国在线一区二区| 久久99精品一区二区三区三区| 亚洲第一激情av| 亚洲日本va在线观看| 一区二区三区在线播| 久久午夜色播影院免费高清| 精品国产一区久久| 欧美电影免费观看完整版| 在线综合视频播放| 欧美喷潮久久久xxxxx| 欧美在线你懂的| 91传媒视频在线播放| 97久久精品人人做人人爽| av一区二区三区四区| av中文字幕亚洲| 成人av集中营| 波波电影院一区二区三区| 不卡一卡二卡三乱码免费网站| 国产精品乡下勾搭老头1| 国产精品香蕉一区二区三区| 国产成人免费9x9x人网站视频| 国产高清一区日本| 丁香桃色午夜亚洲一区二区三区| 国产成人精品三级| 成人在线视频一区二区| 成人不卡免费av| eeuss国产一区二区三区| 97精品久久久午夜一区二区三区| 91丝袜美腿高跟国产极品老师| 91丨porny丨首页| 色一区在线观看| 欧美老肥妇做.爰bbww| 日韩一级黄色片| 久久久久免费观看| 国产精品嫩草影院com| 亚洲欧洲精品一区二区三区| 一区二区三区不卡视频| 午夜欧美电影在线观看| 日本视频一区二区| 久久成人免费日本黄色| 国产69精品久久99不卡| 91女人视频在线观看| 欧美色图第一页| 日韩视频在线你懂得| 久久精品国产一区二区三| 中文字幕欧美日韩一区| 亚洲乱码国产乱码精品精可以看 | 亚洲精品国久久99热| 亚洲国产婷婷综合在线精品| 日韩精品欧美精品| 国产一区二区三区四区五区美女| 国产a视频精品免费观看| 91亚洲午夜精品久久久久久| 欧美日韩国产一区| 26uuu亚洲婷婷狠狠天堂| 中文字幕在线一区二区三区| 亚洲国产中文字幕| 狠狠色丁香婷婷综合| av日韩在线网站| 欧美日韩国产电影| 久久精品无码一区二区三区|