Search code examples
c#arraysinheritanceinterfaceilist

Why does C# array not have Count property?


Possible Duplicate:
count vs length vs size in a collection

Really strange:

C# arrays such as the following

double[] test = new double[1];

support the Length property to get the size of the array. But arrays also implement an IList interface:

IList<double> list = test;

However, the IList interface provides also a Count property. How come the array ("test" in this case) doesn't?

Edit: Thanks to all of you who pointed out that it is in fact the ICollection interface (not IList) which provides the Count property, and also that this is due to explicit implementation of the interface.


Solution

  • Simply, they chose to call it Length, and implement Count via explicit interface implementation -something like:

    int ICollection.Count { get { return Length; } }