C# 根据属性值比较列表中的对象
为了进行XML序列化,我实现了这个结构C# 根据属性值比较列表中的对象,c#,list,C#,List,为了进行XML序列化,我实现了这个结构 [XmlRoot("NXRoutes")] public class NXRoutes { [XmlElement("NXRoute")] public List<NXRoute> NXRoute { get; set; } } public class NXRoute { [XmlAttribute("ID")] public string ID { get; set; } [XmlElement("
[XmlRoot("NXRoutes")]
public class NXRoutes
{
[XmlElement("NXRoute")]
public List<NXRoute> NXRoute { get; set; }
}
public class NXRoute
{
[XmlAttribute("ID")]
public string ID { get; set; }
[XmlElement("Path")]
public List<Path> Path { get; set; }
}
public class Path
{
[XmlAttribute("Nbr_R")]
public int R_count { get; set; }
[XmlAttribute("ID")]
[XmlAttribute("Preferred")]
public string Preferred { get; set; }
}
[XmlRoot(“NXRoutes”)]
公共类路线
{
[XmlElement(“NXRoute”)]
公共列表{get;set;}
}
公共类路线
{
[XmlAttribute(“ID”)]
公共字符串ID{get;set;}
[XmlElement(“路径”)]
公共列表路径{get;set;}
}
公共类路径
{
[XmlAttribute(“Nbr”)]
公共整数R_计数{get;set;}
[XmlAttribute(“ID”)]
[XmlAttribute(“首选”)]
首选公共字符串{get;set;}
}
在我的列表的每个元素中,我想在列表的元素之间进行比较Path
,该比较基于integer属性R\u Count的值
==>例如,对于属性“R_Count”中具有最小值的路径,我将进行一次计算/对于其他路径,我将进行另一次计算
如何实现此比较以对path元素进行一些计算
计算示例(有关更多详细信息):
比较后:
- 对于具有最小属性的路径
R\u Count
我将把它的属性Preferred=“YES”
- 对于其他路径,将其属性设置为
Preferred=“NO”
您可以使用LINQ:
// Assuming nxRoutes is your NXRoutes object
foreach (var route in nxRoutes.NXRoute)
{
var paths = route.Path.OrderBy(p => p.R_count).ToArray();
// This will return a list of paths ordered by the count
// This means the first one is the smallest
paths[0].Preferred = "YES";
// Set the others to NO
for (int i = 1; i < paths.Length; i++)
{
paths[i].Preferred = "NO";
}
}
//假设nxreets是您的nxreets对象
foreach(nxRoutes.NXRoute中的var路由)
{
var Path=route.Path.OrderBy(p=>p.R_计数).ToArray();
//这将返回按计数排序的路径列表
//这意味着第一个是最小的
路径[0]。首选=“是”;
//将其他设置为“否”
for(int i=1;i
您可以使用LINQ执行此操作:
// Assuming nxRoutes is your NXRoutes object
foreach (var route in nxRoutes.NXRoute)
{
var paths = route.Path.OrderBy(p => p.R_count).ToArray();
// This will return a list of paths ordered by the count
// This means the first one is the smallest
paths[0].Preferred = "YES";
// Set the others to NO
for (int i = 1; i < paths.Length; i++)
{
paths[i].Preferred = "NO";
}
}
//假设nxreets是您的nxreets对象
foreach(nxRoutes.NXRoute中的var路由)
{
var Path=route.Path.OrderBy(p=>p.R_计数).ToArray();
//这将返回按计数排序的路径列表
//这意味着第一个是最小的
路径[0]。首选=“是”;
//将其他设置为“否”
for(int i=1;i
你能提供一个你正在尝试进行的计算类型的示例吗?@laptou我编辑的问题可能会有帮助我想你能提供一个你正在尝试进行的计算类型的示例吗?@laptou我编辑的问题可能会有帮助我想