title: Abstract Class - Am I over-thinking this or doing it right?
body: <p>So I am utilizing CollectionBase as an inherited class for custom collections. I am utilizing CollectionBase through an abstract class so that I don't repeated knowledge (following the DRY principle).  The abstract class is defined as a generic class also.  Here is how I am implementing my class:  </p>
  
  <pre><code> public abstract class GenericCollectionBase&lt;T,C&gt; : CollectionBase
   {
        //Indexders, virtual methods for Add, Contains, IndexOf, etc
   }
  </code></pre>
  
  <p>I utilize this so I don't have to implement these base methods in 10+ classes.  </p>
  
  <p>My question is am I taking this too far when I override the Equals method like this:  </p>
  
  <pre><code>    public override bool Equals(object obj)
      {
          if (obj is C)
          {
              GenericCollectionBase&lt;T, C&gt; collB = 
                  obj as GenericCollectionBase&lt;T, C&gt;;
  
              if (this.Count == collB.Count)
              {
                  for (int i = 0; i &lt; this.Count; ++i)
                  {
                      if (!this[i].Equals(collB[i]))
                          return false;
                  }
                  return true;
              }
          }
          return false;
      }
  </code></pre>
  
  <p>Am I trying to accomplish too much with my abstract, or doing this the correct way?</p>
  
  <p>EDIT: This is written for .Net 2.0 and do not have access to 3.5 to utilize things like LINQ</p>