Partager via


Collections + Count property

Do I want a Count property on my collections?  If so, it seems like I'm fundamentally limiting my collections to represent collections of finite elements.  What if i want something that represents the set of all rational numbers?  ISet<Rational> would seem the best candidate. However, then there isn't a valid value for Count to return. I could have it try returning -1, however, that seems quite ugly and seems like it might definitely confuse people. I could also have it return an IOptional<int> (see https://weblogs.asp.net/jaybaz_ms/archive/2004/05/06/127693.aspx) which could return a None<int> to indicate that this collection had no count. hrmmm... I thin for now I won't include a count as it just seems too limiting.

Comments

  • Anonymous
    May 17, 2004
    I would argue for the Count property. I would expect the majority of implementations to use a finite set of elements. If necessary, have it return a Nullable<int> and set the value to null for those collections with an infinite number of elements.
  • Anonymous
    May 17, 2004
    Ron, i definitely agree with you (note that IOptional is very similar to Nullable). I'll update you on my thoughts on this when I get to that point.