如何从 XML 中查询最小值和最大值?
<?xml version="1.0" encoding="utf-8"?>
<Customers>
<Customer Id="1">
<Name>rtertr</Name>
<DOB>2010-12-12T00:00:00</DOB>
<EMail>[email protected]</EMail>
</Customer>
<Customer Id="2">
<Name>west</Name>
<DOB>0001-01-01T00:00:00</DOB>
<EMail>[email protected]</EMail>
</Customer>
<Customer Id="3">
<Name>west</Name>
<DOB>0001-01-01T00:00:00</DOB>
<EMail>[email protected]</EMail>
</Customer>
</Customers>
如何使用 LinQ to XML 从上述示例 XML 中查找最小和最大 CustomerId?例如,对于上面的示例,Min 应为 1,Max 应为 3
<?xml version="1.0" encoding="utf-8"?>
<Customers>
<Customer Id="1">
<Name>rtertr</Name>
<DOB>2010-12-12T00:00:00</DOB>
<EMail>[email protected]</EMail>
</Customer>
<Customer Id="2">
<Name>west</Name>
<DOB>0001-01-01T00:00:00</DOB>
<EMail>[email protected]</EMail>
</Customer>
<Customer Id="3">
<Name>west</Name>
<DOB>0001-01-01T00:00:00</DOB>
<EMail>[email protected]</EMail>
</Customer>
</Customers>
How to find Min and Max CustomerId from the above sample XML using LinQ to XML? For example for the above sample, Min should be 1 and Max should be 3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 dtb 的评论所说,这将迭代数组两次,但只迭代 xml 文档一次。我觉得这是可读性和性能之间的一个很好的折衷——至少当它没有在生产代码中使用时。迭代 int 数组将是 xml 文档迭代的一个小因素。最好的解决方案是仅迭代文档一次并跟踪 dtb 显示的值。
As dtb´s comment says, this will iterate the array twice but only the xml document once. I feel this is a good compromise between readability and performance - at least when its not used in production code. Iterating the int array will be a small factor of the xml document iteration. The best solution is to only iterate the document once and keep track of the values along the way as dtb shows.
您可以使用 Min 和 Max 扩展方法:
或 Aggregate 扩展方法(仅迭代 XML 文档一次):
You can use the Min and Max extension methods:
or the Aggregate extension method (iterating the XML document only once):