using System.Collections.Generic;
public static void Main()
List<Output> records = GetData().ToList();
var activityNames = new Dictionary<Guid, string>();
List<Output> recordsWithStart = records.Where(record => record.Level == "Start").ToList();
recordsWithStart.ForEach(record =>
record.ActivityName = record.Description;
activityNames.Add(record.ActivityId, record.ActivityName);
records.ForEach(record =>
if (activityNames.TryGetValue(record.ActivityId, out activityName))
record.ActivityName = activityName;
private static IEnumerable<Output> GetData()
ActivityId = new Guid("a54221e2-ad37-434a-8f0d-101f7abc2221")
ActivityId = new Guid("d30741c2-da73-434a-8f0d-101f7ceb2228")
ActivityId = new Guid("00000000-0000-0000-0000-000000000000")
ActivityId = new Guid("00000000-0000-0000-0000-000000000000")
ActivityId = new Guid("3b081a36-43d5-4ecc-b381-628c33316205")
ActivityId = new Guid("aa5a5b9c-4b24-43af-9f49-32656385e17d")
ActivityId = new Guid("d30741c2-da73-434a-8f0d-101f7ceb2228")
ActivityId = new Guid("aa5a5b9c-4b24-43af-9f49-32656385e17d")
ActivityId = new Guid("00000000-0000-0000-0000-000000000000")
public sealed class Output
public string Description { get; set; }
public string Level { get; set; }
public string ActivityName { get; set; }
public Guid ActivityId { get; set; }