How do I change my new list without changing the original list?
<p>I have a list that gets filled in with some data from an operation and I am storing it in the memory cache.  Now I want another list which contains some sub data from the list based on some condition.  </p>

<p>As can be seen in the below code I am doing some operation on the target list.  The problem is that whatever changes I am doing to the target list is also being done to the mainList.  I think its because of the reference is same or something.</p>

<p>All I need is that operation on the target list not affect data inside the main list.</p>

<pre><code>List&lt;Item&gt; target = mainList;
SomeOperationFunction(target);

 void List&lt;Item&gt; SomeOperationFunction(List&lt;Item&gt; target)
{
  target.removeat(3);
  return target;
}
</code></pre>
