A good way to get to know how much memory your object eats is using GetTotalMemory() method in System.GC.
long memoryStart = System.GC.GetTotalMemory(true); // Generate some of your objects ICollection<myobject> myObjects = List<myobject>(); for (int i = 0; i < 10000; i++) { myObjects.Add(new MyObject); } long memoryEnd = System.GC.GetTotalMemory(true); MessageBox.Show((memoryEnd - memoryStart).ToString());
That gives you how much memory consume 10 000 objects of your class. Divide it by 10 000 and it's the memory consumption of one object.