Managed空间

彭刚的blog
随笔 - 26, 评论 - 153, 引用 - 81

导航

标签

每月存档

最新留言

广告

Array.IndexOf 性能问题

http://blogs.msdn.com/bclteam/archive/2004/11/18/266136.aspx

posted on 2004-11-19 11:17:00 by gangp  评论(10) 阅读(3932)

System.Collections.Generic.ICollection与System.Collections.ICollection的区别

    public interface ICollection : IEnumerable {

           void CopyTo(Array array, int index);

           int Count { get; }

           Object SyncRoot { get; }

           bool IsSynchronized     { get; }

}

 

    public interface ICollection : IEnumerable {

        int Count { get; }

        bool IsReadOnly { get; }

        void Add(T item);

        void Clear();

        bool Contains(T item);

        void CopyTo(T[] array, int arrayIndex);                

        bool Remove(T item);

}

ICollection相比,泛型ICollection接口中增加了许多方法。ICollection中的方法太少,所以实际上没有什么用处。ICollecion使定义新的Collection(比如LinkedListTree可以实现ICollection<T>)更加方便。

 

Synchronization有关的方法被去掉了,原因是使用Framework提供的Wrapper并不能保证正确的Synchronization. 下面是一个例子:

         Hashtable hashtable = Hashtable.Synchronized(new Hashtable());  

      if(!hashtable.Contains(key)) {

              hashtable.Add(key, value);

}

Add方法还是有可能产生异常。用户有更多的信息来决定什么时候需要使用lock以及lock的范围。

 

例外Remove方法返回bool,用于指明指定的值是否存在于Collection中。

posted on 2004-07-08 09:49:00 by gangp  评论(8) 阅读(4572)

Powered by: Joycode.MVC引擎 0.5.2.0