c# - 使用 LINQ 从 XML 获取三个输入中的最大属性值
问题描述
下面是示例 xml 文件代码。我想使用 LINQ 获取 Max("Match") 值。
<?xml version="1.0" encoding="utf-8"?>
<Match>
<DOBMatch>100</ DOBMatch >
<DOBScore>0</ DOBScore >
<IDScore>89</ IDScore >
</Match>
在 Match 对象中,我有三个值比较这三个属性(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();
推荐阅读
- azure - Azure Kubernetes - Istio Egress 不工作
- c++ - 瓦片地图SFML上的运动场显示
- javascript - 如何在 FormGroup 中动态生成 FormControl?
- javascript - 获取当月的第一天和最后一天
- maven - Mule 4 : Mule 4 域项目可以用作其他 mule 应用程序的 Maven 父项目吗?
- arm - STM32 ST-LinkV2 st-flash1.6.1 无法上传 - Windows 10
- c - 我的 for 循环在我的代码中无法正常工作,它在第一个循环后一直停止?
- java - type 的构造函数不适用,因为此处无法访问正式的可变参数元素类型
- c# - 在多种文化下运行 NUnit 3 测试
- python - 在python中加载pickle的Nonetype对象