如何从LINQ子字符串XAttribute值
本文关键字:字符串 XAttribute LINQ | 更新日期: 2023-09-27 18:19:51
我收到了一些丑陋的xml(如果我能更改的话,我会的),我需要能够处理这些xml。我想按XML中的特定属性进行分组,以便进行进一步处理。问题是,有些属性的类型="a",有些属性类型="A1"、类型="A2"等。我希望所有属性类型值以"a"开头的元素都分组在一起。
这不起作用,我不知道该改变什么才能让它发挥作用:
var result = from ele in xdoc.Descendants(Namespace + "item")
let item= ele.Attribute("type").Value.Substring(1,1)
group ele by item into grp
select grp;
当我去掉子字符串时,它工作得很好,但显然不能按照我想要的方式分组。
错误:
Error has been thrown by the target of an invocation
示例XML:
<items>
<item type="A" position="0">
<itemvalue>10</itemvalue>
</item>
<item type="A1" position="1">
<itemvalue>20</itemvalue>
</item>
<item type="A2" position="2">
<itemvalue>30</itemvalue>
</item>
<item type="B" position="0">
<itemvalue>10</itemvalue>
</item>
<item type="B1" position="1">
<itemvalue>20</itemvalue>
</item>
<item type="B2" position="2">
<itemvalue>30</itemvalue>
</item>
</items>
如果没有我可以使用的编译器,并且在我的手机上键入它,我会说你应该将0作为第一个参数传递给Substring
,即Substring(0,1)
。