title: Using different generic types on a method's argument and return type
body: <p>I am working on a generic utility method that takes a generic argument and returns a generic type--I hope that makes sense!--but I want the return type to be a different type from the argument.</p>
  
  <p>Here's what I'm thinking this should look like if I mock it up in pseudo code:</p>
  
  <pre><code>public static IEnumerable&lt;R&gt; DoSomethingAwesome&lt;T&gt;(T thing) 
  {
      var results = new List&lt;R&gt;();
  
      for (int xx = 0; xx &lt; 5; xx++)
      {
          results.Add(thing.ToRType(xx));
      }
  
      return results;
  }
  </code></pre>
  
  <p>With generics not being able to infer the return type how would I go about doing something like this? So far, my Google-Fu has failed me.</p>