using System.Collections.Generic;
public static void Main()
var contents = new List<SomeObject> {
new SomeObject { ParentId = 1, ControlName = "Id", ValueString = "aa" } ,
new SomeObject { ParentId = 1, ControlName = "Location Res", ValueString = "bbb" } ,
new SomeObject { ParentId = 1, ControlName = "Equipment Or Device Res", ValueString = "" } ,
new SomeObject { ParentId = 1, ControlName = "Prep Notes", ValueString = "ccc" } ,
new SomeObject { ParentId = 3, ControlName = "Location Res", ValueString = "" },
new SomeObject { ParentId = 3, ControlName = "Equipment Or Device Res", ValueString = "" },
new SomeObject { ParentId = 3, ControlName = "Prep Notes", ValueString = "" },
var badEntries = new List<SomeObject>();
for (int i = contents.Count- 1; i >= 0; i--)
if (dto.ControlName == "Location Res" || dto.ControlName == "Equipment Or Device Res" || dto.ControlName == "Prep Notes")
if (string.IsNullOrEmpty(dto.ValueString))
Console.WriteLine(dto.ControlName);
Console.WriteLine("badentries " + badEntries.Count());
var validRows = contents.Where(x => !(badEntries.Any(y => y.ParentId == x.ParentId))).ToList();
Console.WriteLine("validRows " + validRows.Count());
foreach(var row in validRows){
Console.WriteLine(row.ValueString);
public int ParentId { get; set; }
public string ControlName {get;set;}
public string ValueString { get; set; }