在我的项目中,我有一个名为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的结果是124,test2的结果是99。第一个是正确的。
所以我的问题是:我应该总是使用显式转换吗?或者什么时候可以使用隐式转换?
发布于 2017-09-04 19:31:40
好吧,这个问题并没有产生太大的吸引力,但几周后,我突然意识到问题是什么:
Max函数始终搜索最高值,但它不接受有关类型的信息。默认情况下,它似乎假定类型是字符串。
如果按字母表排列所有属性,则99比124更高。我之前没有看到这一点的原因是因为我只使用了10到99之间的值,所以我没有遇到这个问题。
https://stackoverflow.com/questions/44943579
复制相似问题