【问题标题】:xAttribute: when to use explicit conversion?xAttribute:何时使用显式转换?
【发布时间】:2017-07-06 08:27:03
【问题描述】:

在我的项目中,我有一个名为 nwCounter 的 xml 元素,其中包含许多名为 Wire 的元素,每个元素都有一个唯一的属性 UId,它是一个整数。并非所有数字都已使用。

当我使用 linq-to-xml 时,我可以通过两种方式搜索最高的 UId 号:

Dim test1 As Integer = nwCounter.Descendants(networkNameSpace + "Wire").Max(Function(x) Convert.ToInt32(x.Attribute("UId").Value))
Dim test2 As Integer = nwCounter.Descendants(networkNameSpace + "Wire").Max(Function(x) x.Attribute("UId").Value)

test 的结果是124test2 的结果是99。第一个是正确的。

所以我的问题是:我应该始终使用显式转换吗?或者什么时候可以使用隐式转换?

【问题讨论】:

    标签: vb.net linq-to-xml


    【解决方案1】:

    好的,这个问题并没有引起很大的关注,但几周后,我明白了问题所在:

    Max 函数总是搜索最大值,但它不获取类型信息。默认情况下,它似乎假定类型是字符串。

    如果按字母排列所有属性,99 将高于124。之前没有看到这个的原因是因为我只使用了10到99之间的值,所以没有遇到这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      相关资源
      最近更新 更多