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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algorithms.cs

?? C#寫的類似于STL的集合類,首先是C#編寫,可以用于.net變程.
?? CS
?? 第 1 頁 / 共 5 頁
字號:
            /// view onto a typed ICollection<T> interface.
            /// </summary>
            /// <param name="wrappedCollection">The ICollection&lt;T&gt; to wrap.</param>
            public UntypedCollection(ICollection<T> wrappedCollection)
            {
                this.wrappedCollection = wrappedCollection;
            }


            public void CopyTo(Array array, int index)
            {
                if (array == null)
                    throw new ArgumentNullException("array");

                int i = 0;
                int count = wrappedCollection.Count;

                if (index < 0)
                    throw new ArgumentOutOfRangeException("index", index, Strings.ArgMustNotBeNegative);
                if (index >= array.Length || count > array.Length - index)
                    throw new ArgumentException("index", Strings.ArrayTooSmall);

                foreach (T item in wrappedCollection) {
                    if (i >= count)
                        break;

                    array.SetValue(item, index);
                    ++index;
                    ++i;
                }
            }

            public int Count
            {
                get { return wrappedCollection.Count; }
            }

            public bool IsSynchronized
            {
                get { return false; }
            }

            public object SyncRoot
            {
                get { return this; }
            }

            public IEnumerator GetEnumerator()
            {
                return ((IEnumerable)wrappedCollection).GetEnumerator();
            }
        }

        /// <summary>
        /// Given a generic ICollection&lt;T&gt; interface, wrap a non-generic (untyped)
        /// ICollection interface around it. The non-generic interface will contain the same objects as the 
        /// underlying generic collection, but can be used in places that require a non-generic interface.
        /// This method is useful when interfacing generic interfaces with older code that uses non-generic interfaces.
        /// </summary>
        /// <remarks>Many generic collections already implement the non-generic interfaces directly. This
        /// method will first attempt to simply cast <paramref name="typedCollection"/> to ICollection. If that
        /// succeeds, it is returned; if it fails, then a wrapper object is created.</remarks>
        /// <typeparam name="T">The item type of the underlying collection.</typeparam>
        /// <param name="typedCollection">A typed collection to wrap.</param>
        /// <returns>A non-generic ICollection wrapper around <paramref name="typedCollection"/>.
        /// If <paramref name="typedCollection"/> is null, then null is returned.</returns>
        public static ICollection Untyped<T>(ICollection<T> typedCollection)
        {
            if (typedCollection == null)
                return null;
            else if (typedCollection is ICollection)
                return (ICollection)typedCollection;
            else
                return new UntypedCollection<T>(typedCollection);
        }

        /// <summary>
        /// The class that implements a non-generic IList wrapper
        /// around a generic IList&lt;T&gt; interface.
        /// </summary>
        [Serializable]
        private class UntypedList<T> : IList
        {
            private IList<T> wrappedList;

            /// <summary>
            /// Create a non-generic IList wrapper
            /// around a generic IList&lt;T&gt; interface.
            /// </summary>
            /// <param name="wrappedList">The IList&lt;T&gt; interface to wrap.</param>
            public UntypedList(IList<T> wrappedList)
            {
                this.wrappedList = wrappedList;
            }

            /// <summary>
            /// Convert the given parameter to T. Throw an ArgumentException
            /// if it isn't.
            /// </summary>
            /// <param name="name">parameter name</param>
            /// <param name="value">parameter value</param>
            private T ConvertToItemType(string name, object value)
            {
                try {
                    return (T)value;
                }
                catch (InvalidCastException) {
                    throw new ArgumentException(string.Format(Strings.WrongType, value, typeof(T)), name);
                }
            }


            public int Add(object value)
            {  
                // We assume that Add always adds to the end. Is this true?
                wrappedList.Add(ConvertToItemType("value", value));
                return wrappedList.Count - 1;
            }

            public void Clear()
            {  wrappedList.Clear(); }

            public bool Contains(object value)
            {
                if (value is T)
                    return wrappedList.Contains((T)value);
                else
                    return false;
            }

            public int IndexOf(object value)
            {
                if (value is T)
                    return wrappedList.IndexOf((T)value);
                else
                    return -1;
            }

            public void Insert(int index, object value)
            { wrappedList.Insert(index, ConvertToItemType("value", value)); }

            public bool IsFixedSize
            {
                get { return false; }
            }

            public bool IsReadOnly
            {
                get { return wrappedList.IsReadOnly; }
            }

            public void Remove(object value)
            {  
                if (value is T)
                    wrappedList.Remove((T)value); 
            }   

            public void RemoveAt(int index)
            {  wrappedList.RemoveAt(index);}

            public object this[int index]
            {
                get { return wrappedList[index]; }
                set { wrappedList[index] = ConvertToItemType("value", value); }
            }

            public void CopyTo(Array array, int index)
            {
                if (array == null)
                    throw new ArgumentNullException("array");

                int i = 0;
                int count = wrappedList.Count;

                if (index < 0)
                    throw new ArgumentOutOfRangeException("index", index, Strings.ArgMustNotBeNegative);
                if (index >= array.Length || count > array.Length - index)
                    throw new ArgumentException("index", Strings.ArrayTooSmall);

                foreach (T item in wrappedList) {
                    if (i >= count)
                        break;

                    array.SetValue(item, index);
                    ++index;
                    ++i;
                }
            }

            public int Count
            {
                get { return wrappedList.Count; }
            }

            public bool IsSynchronized
            {
                get { return false; }
            }

            public object SyncRoot
            {
                get { return this; }
            }

            public IEnumerator GetEnumerator()
            {  return ((IEnumerable)wrappedList).GetEnumerator(); }
        }

        /// <summary>
        /// Given a generic IList&lt;T&gt; interface, wrap a non-generic (untyped)
        /// IList interface around it. The non-generic interface will contain the same objects as the 
        /// underlying generic list, but can be used in places that require a non-generic interface.
        /// This method is useful when interfacing generic interfaces with older code that uses non-generic interfaces.
        /// </summary>
        /// <remarks>Many generic collections already implement the non-generic interfaces directly. This
        /// method will first attempt to simply cast <paramref name="typedList"/> to IList. If that
        /// succeeds, it is returned; if it fails, then a wrapper object is created.</remarks>
        /// <typeparam name="T">The item type of the underlying list.</typeparam>
        /// <param name="typedList">A typed list to wrap.</param>
        /// <returns>A non-generic IList wrapper around <paramref name="typedList"/>.
        /// If <paramref name="typedList"/> is null, then null is returned.</returns>
        public static IList Untyped<T>(IList<T> typedList)
        {
            if (typedList == null)
                return null;
            else if (typedList is IList)
                return (IList)typedList;
            else
                return new UntypedList<T>(typedList);
        }

        /// <summary>
        /// The class that is used to implement IList&lt;T&gt; to view an array
        /// in a read-write way. Insertions cause the last item in the array
        /// to fall off, deletions replace the last item with the default value.
        /// </summary>
        [Serializable]
        private class ArrayWrapper<T> : ListBase<T>, IList
        {
            private T[] wrappedArray;

            /// <summary>
            /// Create a list wrapper object on an array.
            /// </summary>
            /// <param name="wrappedArray">Array to wrap.</param>
            public ArrayWrapper(T[] wrappedArray)
            {
                this.wrappedArray = wrappedArray;
            }

            public override int Count
            {
                get
                {
                    return wrappedArray.Length;
                }
            }

            public override void Clear()
            {
                int count = wrappedArray.Length;
                for (int i = 0; i < count; ++i)
                    wrappedArray[i] = default(T);
            }

            public override void Insert(int index, T item)
            {
                if (index < 0 || index > wrappedArray.Length)
                    throw new ArgumentOutOfRangeException("index");

                if (index + 1 < wrappedArray.Length)
                    Array.Copy(wrappedArray, index, wrappedArray, index + 1, wrappedArray.Length - index - 1);
                if (index < wrappedArray.Length)
                    wrappedArray[index] = item;
            }

            public override void RemoveAt(int index)
            {
                if (index < 0 || index >= wrappedArray.Length)
                    throw new ArgumentOutOfRangeException("index");

                if (index < wrappedArray.Length - 1)
                    Array.Copy(wrappedArray, index + 1, wrappedArray, index, wrappedArray.Length - index - 1);
                wrappedArray[wrappedArray.Length - 1] = default(T);
            }

            public override T this[int index]
            {
                get
                {
                    if (index < 0 || index >= wrappedArray.Length)
                        throw new ArgumentOutOfRangeException("index");

                    return wrappedArray[index];
                }
                set
                {
                    if (index < 0 || index >= wrappedArray.Length)
                        throw new ArgumentOutOfRangeException("index");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
youjizz国产精品| 欧美三级电影在线看| 欧美一区二区三区免费视频| 午夜欧美电影在线观看| 99久久国产综合精品麻豆| 亚洲人成精品久久久久久| 91国偷自产一区二区三区观看| 一区二区三区四区视频精品免费| 色婷婷精品大视频在线蜜桃视频 | 日韩精品成人一区二区在线| 欧美精品视频www在线观看 | 久久国产三级精品| 久久精品男人天堂av| av在线免费不卡| 亚洲五码中文字幕| 欧美电影免费观看高清完整版在线 | 久久人人爽爽爽人久久久| 成人免费视频app| 亚洲成人先锋电影| 精品1区2区在线观看| 91丨九色丨黑人外教| 日本麻豆一区二区三区视频| 久久品道一品道久久精品| 91麻豆精东视频| 日韩成人精品在线观看| 国产情人综合久久777777| 在线观看日韩精品| 国产一区二区在线观看免费| 一区二区三区鲁丝不卡| 精品久久久网站| 欧美在线色视频| 国产v综合v亚洲欧| 日本欧美一区二区在线观看| 国产精品国产三级国产aⅴ无密码| 欧美日韩国产色站一区二区三区| 国产在线国偷精品产拍免费yy| 亚洲人精品一区| 久久久久免费观看| 欧美日韩成人激情| 91一区二区在线| 国产自产高清不卡| 水野朝阳av一区二区三区| 国产精品久久久久精k8 | 国产99久久久久久免费看农村| 亚洲午夜精品网| 国产精品免费网站在线观看| 91精品麻豆日日躁夜夜躁| 色婷婷精品久久二区二区蜜臂av| 国内精品写真在线观看| 三级欧美韩日大片在线看| 亚洲欧美偷拍卡通变态| 日本一区二区综合亚洲| 精品国产乱码久久久久久久 | 国产成人综合自拍| 极品尤物av久久免费看| 午夜av一区二区| 亚洲一线二线三线视频| 亚洲欧洲另类国产综合| 久久精品视频一区二区| 精品国产免费久久| 日韩西西人体444www| 欧美日韩精品一二三区| 欧美午夜视频网站| 欧美主播一区二区三区| 色系网站成人免费| 色综合天天狠狠| 91亚洲大成网污www| 成人网页在线观看| 高清国产午夜精品久久久久久| 寂寞少妇一区二区三区| 国内成人免费视频| 国产一区不卡精品| 国产一区二区三区av电影| 国产一区二区三区免费在线观看| 蜜桃久久av一区| 精品影院一区二区久久久| 精品一区二区三区蜜桃| 精品一区二区日韩| 国产精品69毛片高清亚洲| 国产精品一区二区三区网站| 国产成人精品亚洲午夜麻豆| 东方aⅴ免费观看久久av| 丁香天五香天堂综合| 成人午夜碰碰视频| 91亚洲精品一区二区乱码| 色哦色哦哦色天天综合| 欧美日韩免费一区二区三区| 91精品久久久久久久99蜜桃| 欧美成人精品3d动漫h| 久久免费精品国产久精品久久久久| 久久精品一区二区三区不卡 | 免费人成精品欧美精品| 美女视频网站久久| 国产精品亚洲综合一区在线观看| 成人av在线资源网站| 91久久精品日日躁夜夜躁欧美| 在线观看一区日韩| 91精品国产综合久久香蕉的特点| 日韩欧美另类在线| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲欧美日本韩国| 男女男精品网站| 国产激情视频一区二区三区欧美| 99视频精品在线| 在线成人高清不卡| 精品成人一区二区| 亚洲情趣在线观看| 日本91福利区| 懂色av一区二区三区免费观看| 色婷婷狠狠综合| 日韩一区二区免费在线观看| 亚洲国产精品国自产拍av| 一区二区三区中文在线观看| 美日韩一区二区| av不卡一区二区三区| 7777精品久久久大香线蕉| 国产欧美日本一区二区三区| 亚洲午夜影视影院在线观看| 国产一区二区视频在线播放| 欧美在线视频不卡| 国产欧美一区二区三区网站| 国产精品每日更新在线播放网址| 五月天激情综合| www.欧美亚洲| 欧美剧在线免费观看网站| 久久久久久免费网| 肉肉av福利一精品导航| 成人午夜av影视| 日韩精品一区二区三区三区免费 | 久久一二三国产| 亚洲一区在线免费观看| 国产一区二区美女| 欧美高清激情brazzers| 亚洲欧洲美洲综合色网| 国产精品综合av一区二区国产馆| 欧美色国产精品| 亚洲人成亚洲人成在线观看图片| 国产一区二区三区四区在线观看| 制服丝袜亚洲精品中文字幕| 亚洲激情一二三区| av亚洲精华国产精华精| 久久亚洲二区三区| 免费成人性网站| 欧美巨大另类极品videosbest | 欧美一级一区二区| 亚洲女人****多毛耸耸8| 国产精品538一区二区在线| 日韩黄色小视频| 97久久久精品综合88久久| 久久无码av三级| 久久电影网电视剧免费观看| 欧美日韩精品一区二区三区| 一区二区三区中文在线观看| jlzzjlzz欧美大全| 国产精品乱码一区二区三区软件| 精品无人码麻豆乱码1区2区| 精品理论电影在线| 麻豆精品国产传媒mv男同| 欧美夫妻性生活| 天天综合色天天| 欧美三级蜜桃2在线观看| 亚洲国产aⅴ成人精品无吗| 色综合色综合色综合| 亚洲视频在线一区二区| av电影天堂一区二区在线观看| 中文字幕亚洲在| 94-欧美-setu| 一区二区三区四区亚洲| 欧美网站一区二区| 亚洲成人免费在线观看| 宅男噜噜噜66一区二区66| 视频一区二区欧美| 日韩美女视频在线| 韩国成人在线视频| 国产日韩av一区二区| 日韩欧美亚洲国产精品字幕久久久| 97se亚洲国产综合自在线观| 国产亚洲一本大道中文在线| 国产真实乱子伦精品视频| 久久久国产一区二区三区四区小说| 久久成人久久鬼色| 国产无一区二区| www.日韩在线| 亚洲超丰满肉感bbw| 欧美一区二区三区免费大片| 国产乱码一区二区三区| 欧美国产综合一区二区| 91美女片黄在线| 天天操天天综合网| 精品动漫一区二区三区在线观看| 成人久久久精品乱码一区二区三区 | 成人天堂资源www在线| 亚洲欧美成aⅴ人在线观看| 欧美三级视频在线观看| 久久成人免费电影| 亚洲欧美日韩中文字幕一区二区三区| 欧美日本在线播放| 国产在线不卡一卡二卡三卡四卡| 国产精品国产自产拍在线| 欧美日韩亚洲综合|