var results = from r in ds.Tables[0].AsEnumerable() select new {resource1 = r.Field<String>("resource1"), booking_id = r.Field<Int64>("booking_id"), start_time = r.Field<DateTime>("start_time"), end_time = r.Field<DateTime>("end_time"), flex_tspan = r.Field<Boolean>("flex_tspan"), layer = r.Field<Int16>("layer"), backcolor = r.Field<Int32>("backcolor"), forecolor = r.Field<Int32>("forecolor"), clip_sp = r.Field<String>("clip_sp"), clip_loc = r.Field<Int16>("clip_loc"), display_msg = "".PadRight((r.Field<Boolean>("locked"))?2:0) + (String.IsNullOrEmpty(r.Field<String>("department") + r.Field<String>("category") + r.Field<String>("item"))?("**"+r.Field<String>("lsndescrip").Trim() + "**").R };(not finished since I now need replicate function in C# - I found this http://stackoverflow.com/questions/3754582/is-there-an-easy-way-to-return-a-string-repeated-x-number-of-times and wondering if I should go with String.Concat or create an extension - (if we don't have it already).