[英]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.