« Medtronic Minimed 508 Insulin Pump vs. m... | Main | Oh yes, it kicks much booty - Just rippe... »

Wesner's thoughts on Collection versus List

Posted 2004-08-02 11:10 AM in NDoc.

Wesner offers his thoughts on my question, What's the difference between System.Collections.Generic.Collection and System.Collections.Generic.List?

I think there are two possible reasons.

  • Collection<T> appears to be a replacement for CollectionBase, which provided virtual methods to detect insertions, deletions and changes.
  • The new List class no longer provides any virtual methods as did the original ArrayList for performance reasons..
    [Wesner Moise]

He also educates us on some of the differences between List<T> and the 2.0 ArrayList.

  • List<T> does not use any virtual methods. As a result, a number of methods such as the list indexer methods can now be inlined.
  • With the default constructor, List<T> and Whidbey ArrayList do not allocate any memory for its items, so an empty list represents a very compact object--comparable in size to an empty array. (8 bytes for Array, 12 bytes for List, 16 bytes for Whidbey ArrayList) It uses the empty array trick that I wrote about in an earlier post. In contrast, earlier versions of ArrayList would allocate space for 16 items by default.
  • The initial buffer size when an item is actually added is 4 items not 16 as before.
  • List<T> returns an struct-based enumerator, so that iterating through foreach now involves no memory allocations at all.
    [Wesner Moise]



Monday, August 02, 2004 10:45:13 AM (Pacific Standard Time, UTC-08:00)
Did you see this post from the BCL Team?
http://blogs.msdn.com/bclteam/archive/2004/07/29/201059.aspx

In particular,
"System.Collections namespace now contains collections intended for scenarios where a collection needs to be exposed from an object model. For example Directory.Files property returning a collection of files in a directory. The collections are called Collection[T], ReadOnlyCollection[T], and KeyedCollection[K,T]."

BTW, I replaced the lt/gt with square brackets because the site gave me a request validation exception message when I saved the comment.

Tuesday, August 03, 2004 4:36:55 AM (Pacific Standard Time, UTC-08:00)
Why No comments posted yet?
Tuesday, August 03, 2004 8:19:22 AM (Pacific Standard Time, UTC-08:00)
I was wondering the same thing.
Scott Hanselman
Comments are closed.

Contact

Sponsors

Hosting By

Hot Topics

Tags

Calendar

<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Archives

March, 2010 (10)
February, 2010 (17)
January, 2010 (13)
December, 2009 (13)
November, 2009 (7)
October, 2009 (19)
September, 2009 (11)
August, 2009 (12)
July, 2009 (21)
June, 2009 (26)
May, 2009 (16)
April, 2009 (13)
March, 2009 (17)
February, 2009 (17)
January, 2009 (18)
December, 2008 (32)
November, 2008 (17)
October, 2008 (22)
September, 2008 (16)
August, 2008 (14)
July, 2008 (25)
June, 2008 (19)
May, 2008 (17)
April, 2008 (17)
March, 2008 (26)
February, 2008 (21)
January, 2008 (28)
December, 2007 (19)
November, 2007 (17)
October, 2007 (31)
September, 2007 (39)
August, 2007 (37)
July, 2007 (43)
June, 2007 (37)
May, 2007 (32)
April, 2007 (38)
March, 2007 (29)
February, 2007 (46)
January, 2007 (31)
December, 2006 (27)
November, 2006 (31)
October, 2006 (32)
September, 2006 (39)
August, 2006 (34)
July, 2006 (40)
June, 2006 (18)
May, 2006 (31)
April, 2006 (34)
March, 2006 (30)
February, 2006 (38)
January, 2006 (44)
December, 2005 (19)
November, 2005 (34)
October, 2005 (24)
September, 2005 (37)
August, 2005 (20)
July, 2005 (24)
June, 2005 (33)
May, 2005 (16)
April, 2005 (22)
March, 2005 (34)
February, 2005 (15)
January, 2005 (37)
December, 2004 (28)
November, 2004 (30)
October, 2004 (34)
September, 2004 (22)
August, 2004 (34)
July, 2004 (18)
June, 2004 (64)
May, 2004 (49)
April, 2004 (21)
March, 2004 (29)
February, 2004 (29)
January, 2004 (36)
December, 2003 (25)
November, 2003 (24)
October, 2003 (59)
September, 2003 (42)
August, 2003 (24)
July, 2003 (44)
June, 2003 (29)
May, 2003 (21)
April, 2003 (30)
March, 2003 (27)
February, 2003 (47)
January, 2003 (50)
December, 2002 (31)
November, 2002 (38)
October, 2002 (44)
September, 2002 (15)
May, 2002 (2)
April, 2002 (4)

Google Ads