title: Can I have fixed typed ArrayList in C#, just like C++?
body: <p>I have an <code>ArrayList</code> which contains fixed type of objects. 
  However everytime I need to extract an object a particular index, I need to typecast it to my user defined type from object type.</p>
  
  <p>Is there a way in C# to declare <code>ArrayList</code> of fixed types just like Java and C++, or is there a work around to avoid the typecasting everytime?</p>
  
  <p>Edit:</p>
  
  <p>I apologize I forgot mentioning that <strong>I require the datastructure to be thread-safe,</strong> which <code>List</code> is not. Otherwise I would have just used a normal <code>Array</code>. But I want to save myself from the effort of explicitly locking and unlocking while writing the array.</p>
  
  <p>So I thought of using <code>ArrayList</code>, synchronize it, but it requires typecasting every time.</p>