title: Filter a generic list based on another list
body: <p>I have a generic list which needs to be filter based on another list (say, <code>List&lt;string&gt;</code>).</p>
  
  <pre><code>public class Model
  {
    public string ID { get; set;}
    public string Make { get; set;}
  }
  
  List&lt;Model&gt; lstModel = new List&lt;Model&gt;();
  </code></pre>
  
  <p>And the lstModel is as follows</p>
  
  <pre><code> ID      Make
  ----    -----------
   5       MARUTI
   4       BENZ
   3       HYUNDAI
   2       HONDA
   1       TOYOTA
  </code></pre>
  
  <p>And i have another list which contains only car makers,ie</p>
  
  <pre><code>List&lt;string&gt; lstMakers = new List&lt;string&gt;() {"MARUTI", "HONDA"};
  </code></pre>
  
  <p>1) I need to filter lstModel which contains only items in lstMakers.
           The output would be</p>
  
  <pre><code> ID      Make
  ----    -----------
   5       MARUTI
   2       HONDA
  </code></pre>
  
  <p>2) Based on output (1), need another list of ids with 1 increment to each item in descending order, 
     The output would be <code>List&lt;int&gt;</code> ie,</p>
  
  <pre><code>  6
    5
    3
    2
  </code></pre>
  
  <p>Note: Using lambda expression / linq is more preferable</p>