簡體   English   中英

使用 LINQ 從 XML 獲取三個輸入中的最大屬性值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM