title: How to shallow copy of a list given as generic without knowing the items generic type parameter?
body: <p>I got as far as:</p>
  <pre><code>T clone(T source)
  {
      if(source != null &amp;&amp; source.GetType() == typeof(List&lt;&gt;))
      {
          Type listType = source.GetType();
          Type listElemType = listType.GetGenericArguments()[0].GetType();
          var listClone = (T)Activator.CreateInstance(listType.MakeGenericType(listElemType));
          ...
          return listClone;
      }
      ...
  }
  </code></pre>
  <p>Now, how to fill the clone? As I said, I just need a shallow copy. Thanks.</p>