using System.Collections.Generic;
public int Id { get; set; }
public string Name { get; set; }
public int Code { get; set; }
public string Domain { get; set; }
public static void Main()
var filter = new List<Record>()
new Record { Id = 011, Name = "OAKLAWN", Code = 123, Domain = "p1000"},
new Record { Id = 012, Name = "OAKLAWN", Code = 124 , Domain = "p2000"},
new Record { Id = 013, Name = "OAKLAWN", Code = 125 , Domain = "p3000"},
new Record { Id = 014, Name = "OAKLAWN", Code = 126 , Domain = "p2000"},
new Record { Id = 015, Name = "OAKLAWN", Code = 127 , Domain = "p5000"},
new Record { Id = 016, Name = "PEAKLAWN", Code = 111 , Domain = "p6000"},
new Record { Id = 017, Name = "PERKLAWN", Code = 124 , Domain = "p6000"},
new Record { Id = 018, Name = "QUCKLAWN", Code = 122 , Domain = "p6000"}
var records = filter.GroupBy(t => t.Name).Where(x => x.Name.ToLower().Contains("OAK")).ToList();