title: Best way to join 3 lists and count how many times an ID is in the list using linq
body: <p>Looking for some help with this problem i'm trying to work through to learn how linq works. 
  My thinking was to join the person and customer list on personID to get the name for the customers and then join the customer and sale lists on customerID and then count the customerID in sale to get the amount of sales by the customer that were from the online store. </p>
  
  <p>Task: Determine which people have placed the most orders from our online store</p>
  
  <pre><code>public class Person
  {
      public int PersonID { get; set; }
      public string PersonType { get; set; }
      public bool NameStyle { get; set; }
      public string Title { get; set; }
      public string FirstName { get; set; }
      public string MiddleName { get; set; }
      public string LastName { get; set; }
      public string Suffix { get; set; }
  }
  
  public class Sale
  {
      public int SalesOrderId { get; set; }
      public int RevisionNumber { get; set; }
      public DateTime OrderDate { get; set; }
      public DateTime DueDate { get; set; }
      public DateTime? ShipDate { get; set; }
      public bool IsOnlineOrder { get; set; }
      public int CustomerId { get; set; }
      public int? SalesPersonId { get; set; } 
      public int? TerritoryID { get; set; }
      public decimal SubTotal { get; set; }
      public decimal TaxAmt { get; set; }
      public decimal Freight { get; set; }
      public decimal TotalDue { get; set; }
  }
  
  public class Customer
  {
      //CustomerID can belong to a store or a person
      public int CustomerID { get; set; }
      public int? StoreID { get; set; }
      public int? PersonID { get; set; }
      public int? TerritoryID { get; set; }
      public string AccountNumber { get; set; }
  }
  
      public void MostOrders()
      {
          List&lt;Person&gt; per = Data.GetAllPersons();
          List&lt;Sale&gt; sale = Data.GetAllSales();
          List&lt;Customer&gt; cus = Data.GetAllCustomers();
  
          var join = (from x in per
                      join y in cus
                      on x.PersonID equals y.PersonID
                      join t in sale
                      on y.CustomerID equals t.CustomerId
                      select new
                      {
                          ......
                      });
      }
  </code></pre>