[英]How to get highest value from xml element in C#?
我需要从<WBWellIdSegment>
获得最高的<WbDrillPermitNo>
即 692753。我使用 linq 编写了如下代码,但它同时返回了<WBWellIdSegment>
作为结果。 请帮我获得最大值。
XDocument xml1 = XDocument.Load(File.FullName);
List<XElement> segLists = xml1.Descendants("WBWellIdSegmentList").Descendants("WBWellIdSegment").Elements("WbDrillPermitNo").ToList();
var result = segLists.GroupBy(i => i.Elements("WbDrillPermitNo"),
(i, group) => group.Single(x => x.Element("WbDrillPermitNo").Value == group.Max(y =>
y.Element("WbDrillPermitNo").Value)));
xml 文件
<WBWellIdSegmentList>
<WBWellIdSegment>
<WbOilLseNumber>07337</WbOilLseNumber>
<WbOilWellNumber>1486W</WbOilWellNumber>
<WbDrillPermitNo>370746</WbDrillPermitNo>
</WBWellIdSegment>
<WBWellIdSegment>
<WbOilLseNumber>07337</WbOilLseNumber>
<WbOilWellNumber>1486</WbOilWellNumber>
<WbDrillPermitNo>692753</WbDrillPermitNo>
</WBWellIdSegment>
</WBWellIdSegmentList>
返回最大值(假设该值为整数类型)
wellBore.Descendants("WbDrillPermitNo").Select(e => int.Parse(e.Value)).Max();
要从 <WbDrillPermitNo> 返回具有最大值的元素<WBWellIdSegment>
<WbDrillPermitNo>
您可以使用Aggregate
方法
var segmentWithMaxNumber = wellBore.Descendants("WBWellIdSegment")
.Select(e => (Element: e, Number: int.Parse(e.Element("WbDrillPermitNo").Value)))
.Aggregate((max, e) => e.Number > max.Number ? e : max, max => max.Element);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.