title: C# LINQ replacing nulls with meaningful string
body: <p>From the list</p>
  
  <pre><code>class Delivery
  {
      public string ProductCode
      {
          get;
          set;
      }
  
      public DateTime? OrderedDate
      {
          get;
          set;
      }
  
      public DateTime? DeliveryDate
      {
          get;
          set;
      }
  
      public Delivery(string pcode, DateTime? orddate, DateTime? deldate)
      {
          ProductCode = pcode;
          OrderedDate = orddate;
          DeliveryDate = deldate;
      }
  }
  
  
  List&lt;Delivery&gt; DeliveryList = new List&lt;Delivery&gt;();
  DeliveryList.Add(new Delivery("P001",new DateTime(2009,01,27),null));
  DeliveryList.Add(new Delivery("P007",new DateTime(2009,05,17),null));
  DeliveryList.Add(new Delivery("P031", new DateTime(2008, 03, 15),
  new DateTime(2008,04 ,22)));
  DeliveryList.Add(new Delivery("P011",new DateTime(2009,01,27),
  new DateTime(2009,02,12)));
  DeliveryList.Add(new Delivery("P041",new DateTime(2009,01,27),null));
  DeliveryList.Add(new Delivery("P051", new DateTime(2009, 01, 27),
  new DateTime(2009, 02, 12)));
  DeliveryList.Add(new Delivery("P501",new DateTime(2009,01,27),null));
  DeliveryList.Add(new Delivery("P801",new DateTime(2009,01,27),null));
  
  var query = DeliveryList.OrderBy(p =&gt; p.DeliveryDate);
  </code></pre>
  
  <p>For Report purpose ,During LINQ execution,What is the way to replace null values (Based on Delivery Date) with
  message "Yet to be delivered" (DateTime is value type).</p>