In System.Data.Linq, EntitySet<T> uses a couple of ItemList<T> structs which look like this:

 internal struct ItemList<T> where T : class
  {
    private T[] items;
    private int count;
    ...(methods)...
  }

(Took me longer than it should to discover this - couldn't understand why the entities field in EntitySet<T> was not throwing null reference exceptions!)

My question is what are the benefits of implementing this as a struct over a class?

Edit
Report