C# Working with Linq binding
<p>I have designed Types as follow:</p>

<pre><code>class Cricket
{
     string type;
     Team tm;

     public Team Team
     {
        get { return tm; }
        set { tm = value; }
     }

     public string Type
     {
       get { return type; }

        set { type = value; }
     }
 }

  class Team
  {
     string country;
     Players plr;

     public Players Players
     {
        get {return plr; }
        set { plr = value; }
      }

      public string Country
      {
       get { return country; }
       set { country = value; }
      }

  }

    class Players
    {
        string name;
        DateTime dob;
        int run;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public DateTime DOB
        {
            get { return dob; }
            set { dob = value; }
        }
        public int Run
        {
            get { return run; }
            set { run = value; }
        }
    }
</code></pre>

<p>I have to get the following using LINQ techniques.</p>

<p>1) Youngest all data of the youngest player among all teams</p>

<p>2) Oldest Player of each team</p>

<p>3) The highest run scorer will receive Gold Medal,rest of the players of all team will 
   receive Silver medal.
  (Please look at the GetPlayer() i have declared var Medal=new String[]  {"Gold","Silver"} to associate the Medal ) </p>

<pre><code>public void GetPlayer()

{

  var TeamMatrix = new Cricket[]

  {

 new Cricket{ Type="Twenty20", Team=new Team{ Country="England",
 Players=new Players{ DOB=Convert.ToDateTime("01/Jan/1989"),
 Name="Russel", Run=45}}},


  new Cricket{ Type="Twenty20", Team=new Team{ Country="England",
  Players=new Players{ DOB=Convert.ToDateTime("01/Jan/1991"),
  Name="Joel", Run=56}}},

  new Cricket{ Type="Twenty20", Team=new Team{ Country="Australia",
  Players=new Players{ DOB=Convert.ToDateTime("01/Jan/1990"),
  Name="Clark", Run=145}}},

  new Cricket{ Type="Twenty20", Team=new Team{ Country="Australia",
  Players=new Players{ DOB=Convert.ToDateTime("01/Jan/1971"),
  Name="Bevan", Run=156}}}

 };

 var Medal = new string[] { "Gold", "Silver" };

  var tm = (from mat in TeamMatrix select new { mat.Team.Players.DOB }).Max();

  Console.WriteLine("Youngest Age={0}",tm);

 }
</code></pre>

<p>When I declare </p>

<pre><code>var tm = (from mat in TeamMatrix select new { mat.Team.Players.DOB }).Max();
</code></pre>

<p>I receive error </p>

<blockquote>
  <p>atleast one object must implement
  IComparable.</p>
</blockquote>

<p>What is the actual way to complete the above three tasks? ( Tasks 1 ,2 ,3 are explained above).</p>

<p>Thanks to all.</p>
