using System; using System.Collections.Generic; using System.Linq; namespace a { public class Test { public static void Main() { List objt = new List { (new DataRouteDetails { ClusterName="A", HopCount=2, NodeIP="222"}), (new DataRouteDetails { ClusterName="A", HopCount=3, NodeIP="123"}), (new DataRouteDetails { ClusterName="B", HopCount=1, NodeIP="445"}), (new DataRouteDetails { ClusterName="A", HopCount=4, NodeIP="34"}), (new DataRouteDetails { ClusterName="B", HopCount=2, NodeIP="56"}), }; var item = objt.Where(x => x.ClusterName == "A").OrderBy(x => x.HopCount).FirstOrDefault(); Console.WriteLine(item.ClusterName + item.HopCount.ToString() + item.NodeIP); } } class DataRouteDetails { public string ClusterName; public int HopCount; public string NodeIP; } }