Suppose this is my member class
class Member { public string CategoryId { get; set; } public string MemberName { get; set; } public int Distance { g
try this
var distinctIds = list.Distinct(item => item.CategoryId).ToList(); var newList = new List(); foreach(var id in distinctIds){ newList.Add(list.Where(item => item.CategoryId == id).Min(item => item.Distance)) } newList.OrderBy(item => item.CategoryId);