title: Is it possible to have a property that is IEnumerable<T>?
body: <p>I have a class that's <code>IEnumerable&lt;T&gt;</code> where I want to have different properties that provides a filtered <code>IEnumerable&lt;T&gt;</code> access.</p>
  
  <p>So for instance:</p>
  
  <pre><code>class Shape
     ShapeType = Box/Sphere/Pyramid
  
  class ShapeCollection : IEnumerable&lt;Shape&gt;
  {
     public IEnumerable&lt;Shape&gt; OnlyBox
     {
         foreach(var s in this)
         {
             if (s.ShapeType == Box)
                 yield return s;
         }
     }
  }
  </code></pre>
  
  <p>Is this how it should be? Just not sure, about it completely.</p>
  
  <p>Thanks.</p>