title: Convert IEnumerable<string> to ICollection<string>
body: <p>I have both an <code>IEnumerable&lt;string&gt;</code> and an <code>ICollection&lt;string&gt;</code> passed in as arguments to a method.  Within the method, I want to concat some values to the <code>ICollection&lt;string&gt;</code> and reassign the return value from the concat invocation back onto the <code>ICollection&lt;string&gt;</code> passed in.  My question is, what is the most effective way to do so?</p>
  
  <blockquote>
    <p>Cannot convert source type <code>'System.Collections.Generic.IEnumerable&lt;string&gt;'</code> to target type <code>'System.Collections.Generic.ICollection&lt;string&gt;'</code>.</p>
  </blockquote>
  
  <pre><code>void DoSomething(IEnumerable&lt;string&gt; values, ICollection&lt;string&gt; otherValues)
  {
      // Ideally, I could chain after the Concat and get my ICollection&lt;string&gt;.
      otherValues = otherValues.Concat(GetConcatValues());
  
      // Remaining source left out for brevity...
  }
  </code></pre>
  
  <p>I fully understand the issue with the conversion and that <code>ICollection&lt;string&gt;</code> inherits <code>IEnumerable&lt;string&gt;</code>.  Additionally, I know that the .Concat call returns an <code>IEnumerable&lt;string&gt;</code> and not the desired <code>ICollection&lt;string&gt;</code>.</p>
  
  <p>I simply want to know if there is a one line extension method that already exists that will knowingly convert this to the collection I want it as?  Also, I just realized that I said <code>IEnumerable&lt;string&gt;</code> and <code>ICollection&lt;string&gt;</code> like a million times...</p>