title: c# equivalent for c++ vector or deque
body: <p>I am almost certain this should be a duplicate but I searched for some time and could not find the answer. What should I use in C# to replace C++ vector and deque <strong>efficiently</strong>. That is I need a structure that supports direct indexing effieciently and also supports delete from one or both ends(depending on vector or deque case) again in an efficient manner.</p>
  
  <p>In java I usually use ArrayList at least for vector but for C# I found <a href="http://www.dotnetperls.com/arraylist">this source</a> that states:
  <code>ArrayList resizes dynamically. As elements are added, it grows in capacity to accommodate them. It is most often used in older C# programs.</code>. So what is the new way to do this? And again what do I do for the deque case?</p>