var item = objt.Where(x => x.ClusterName == "A").OrderBy(x => x.HopCount).FirstOrDefault();
Full example is as follows
using System;
using System.Collections.Generic;
using System.Linq;
namespace a
{
public class Test
{
public static void Main()
{
List<DataRouteDetails> objt = new List<DataRouteDetails>
{
(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;
}
}
Vinaybhirask...
Member
93 Points
112 Posts
Get Object, based on Condition from LIST using LINQ
Dec 20, 2012 05:12 AM|LINK
Hello Every One, I am having a Class Named DataRouteDetails and Initilizing Few values to It as shown in Snippet,
List<DataRouteDetails> objt = new List<DataRouteDetails>
{
(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"}),
};
Now I want to Retreive an Object Having Minimum HopCount along with creteria having a ClustetName Called "A" using LINQ
I tried with
DataRouteDetails oo = objt.Where(x => x.ClusterName == "A" && x.HopCount == objt.Min(y => y.HopCount)).FirstOrDefault();
But It Didn't Helped me out
alankarp
Contributor
2042 Points
345 Posts
Re: Get Object, based on Condition from LIST using LINQ
Dec 20, 2012 05:33 AM|LINK
Hi,
Use below query
using System; using System.Collections.Generic; using System.Linq; namespace a { public class Test { public static void Main() { List<DataRouteDetails> objt = new List<DataRouteDetails> { (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; } }Profile
alankarp
Contributor
2042 Points
345 Posts
Re: Get Object, based on Condition from LIST using LINQ
Dec 20, 2012 05:35 AM|LINK
Example from online complier
http://ideone.com/MjUeOp
Profile
Vinaybhirask...
Member
93 Points
112 Posts
Re: Get Object, based on Condition from LIST using LINQ
Dec 20, 2012 05:39 AM|LINK
Thanks alankarp for remainding OrderBy Clause