title: Return always new list from a function or not?
body: <p>I need to create a public function to a class where that function returns a <code>List</code> of item, say List(of employee) for example.</p>
  
  <p>This function will be called frequently from outside this class.</p>
  
  <p>From the memory consumption point of view, is it better to:</p>
  
  <ol>
  <li>initialize always new list inside this function, add items to it and return this list or;</li>
  <li>have a list stored in a field, clear items from it, add new items and return this list</li>
  </ol>
  
  <p>A code example:</p>
  
  <p>1.</p>
  
  <pre><code>public List&lt;employee&gt; GetItems()
  {
      List&lt;employee&gt; list = new List&lt;employee&gt;();
      list.Add(new employee());
      list.Add(new employee());
      ....
      return list;
  }
  </code></pre>
  
  <p>2.</p>
  
  <pre><code>private List&lt;employee&gt; _list = new List&lt;employee&gt;();
  public List&lt;employee&gt; GetItems()
  {
      _list.Clear();
      _list.Add(new employee());
      _list.Add(new employee());
      ...
      return _list;
  }
  </code></pre>
  
  <p>Is one of the above more preferred in terms of memory consumption? And in what circumstances one of the above should be used instead of the other option?</p>