title: Using LINQ to convert List<U> to List<T>
body: <p>I have 2 classes which have some identical properties.
  I stock into a list properties from 1st class, and after that, I want to take some needed properties and put them into a list of 2nd class type.
  I've made cast sequence through C# and that runs OK, but I must do with LINQ. I tried to do something but without good results. Help me please with suggestions.</p>
  <p>1st Class:</p>
  <pre><code>   public class ServiceInfo {
      private long _id;
      public long ID {
          get { return this._id; }
          set { _id = value; }
      }
  
      private string _name;
      public string Name {
          get { return this._name; }
          set { _name = value; }
      }
  
      private long _qty;
      public long Quantity {
          get { return this._qty; }
          set { _qty = value; }
      }
  
      private double _amount;
      public double Amount {
          get { return this._amount; }
          set { _amount = value; }
      }
  
      private string _currency;
      public string Currency {
          get { return this._currency; }
          set { _currency = value; }
      }
  
      private DateTime? _date;
      public DateTime? Date {
          get { return this._date; }
          set { _date = value; }
      }
  }
  </code></pre>
  <p>2nd Class:</p>
  <pre><code>class InvoiceWithEntryInfo {
      private string currencyField;
  
      private long IdField;
      public long IdIWEI {
          get { return this.IdField; }
          set { IdIWEI = value; }
      }
  
      private string nameField;
      public string NameIWEI {
          get { return this.nameField; }
          set { NameIWEI = value; }
      }
  
      private long qtyField;
      public long QuantityIWEI {
          get { return this.qtyField; }
          set { QuantityIWEI = value; }
      }
  
      private double amountField;
      public double AmountIWEI {
          get { return this.amountField; }
          set { AmountIWEI = value; }
      }
      
      private DateTime dateField;
      public DateTime? DateIWEI {
          get { return this.dateField; }
          set { DateIWEI = value; }
      }
  
      public string OwnerIWEI {
          get; set;
      }
  }
  </code></pre>
  <p>C# sample which runs OK:
  ...</p>
  <pre><code>var sil = new List&lt;ServiceInfo&gt;();
  var iweil = new List&lt;InvoiceWithEntryInfo&gt;();
  </code></pre>
  <p>...</p>
  <pre><code>if (sil != null)
      {
          foreach (ServiceInfo item in sil)
          {
              iweil.Add(new InvoiceWithEntryInfo
                  {
                      IdIWEI = item.ID,
                      AmountIWEI = item.Amount,
                      DateIWEI = item.Date
                  });
          }
  </code></pre>
  <p>LINQ sample which doesn't run OK:</p>
  <pre><code>iweilCOPY = sil.ConvertAll&lt;InvoiceWithEntryInfo&gt;(a =&gt; (InvoiceWithEntryInfo)a);
  
  iweilCOPY = sil.FindAll(a =&gt; (sil is InvoiceWithEntryInfo)).ConvertAll&lt;InvoiceWithEntryInfo&gt;(a =&gt; (InvoiceWithEntryInfo)a);
  </code></pre>