C# LINQ replacing nulls with meaningful string
c#, linq
Solution
var result = DeliveryList.Select(x => new
{
ProductCode = x.ProductCode,
OrderedDate = x.OrderedDate,
DeliveryDate = x.DeliveryDate.HasValue
? x.DeliveryDate.Value.ToString() : "Yet to be delivered"
}).OrderBy(p => p.DeliveryDate).ToArray();
Problem
From the list ``` 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<Delivery> DeliveryList = new List<Delivery>(); 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 => p.DeliveryDate); ``` 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).