title: How do I form a good predicate delegate to Find() something in my List<T>?
body: <p>After looking on MSDN, it's still unclear to me how I should form a proper predicate to use the Find() method in List using a member variable of T  (where T is a class)</p>
  
  <p>For example:</p>
  
  <pre><code>public class Car
  {
     public string Make;
     public string Model;
     public int Year;
  }
  
  {  // somewhere in my code
     List&lt;Car&gt; carList = new List&lt;Car&gt;();
     // ... code to add Cars ...
  
     Car myCar = new Car();
  
     // Find the first of each car made between 1980 and 2000
     for (int x = 1980; x &lt; 2000; x++)
     {
         myCar = carList.Find(byYear(x));
         Console.Writeline(myCar.Make + myCar.Model);
     }
  }
  </code></pre>
  
  <p>What should my "byYear" predicate look like? </p>
  
  <p>(The MSDN example only talks about a List of dinosaurs and only searches for an unchanging value "saurus" -- It doesn't show how to pass a value into the predicate...)</p>
  
  <p>EDIT: I'm using VS2005/.NET2.0, so I don't think Lambda notation is available to me...</p>
  
  <p>EDIT2: Removed "1999" in the example because I may want to "Find" programatically based on different values. Example changed to range of cars from 1980 to 2000 using for-do loop.</p>