[英]Get max attribute value in three input from XML using LINQ
下面是示例 xml 文件代码。 我想使用 LINQ 获得 Max("Match") 值。
<?xml version="1.0" encoding="utf-8"?>
<Match>
<DOBMatch>100</ DOBMatch >
<DOBScore>0</ DOBScore >
<IDScore>89</ IDScore >
</Match>
在匹配 object 中,我有三个值比较这三个属性( DOBMatch,DOBScore,IDScore
)并获得最大值。
下面的代码得到一个值。
var info = document.Descendants("Match");
var finalInfo = info.Select(x => x.Element("DOBMatch ").Value).Max();
首先,您需要将值转换为int
,以便正确找到最大值。 其次,您需要获得所需的三个值:
var targetNames = new[] { "DOBMatch", "DOBScore", "IDScore" }.ToHashSet();
var info = document.Descendants("Match");
var finalInfo = info.SelectMany(d => d.Elements()
.Where(d => targetNames.Contains(d.Name.ToString()))
.Select(d => Int32.Parse(d.Value)))
.Max();
var finalInfo = info.Elements().Max(x => Convert.ToInt32(x.Value));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.