使用逗号将xElements作为字符串

时间:2014-02-19 13:00:07

标签: xml vb.net linq xelement

我有一个像这样的XElement:

<Table1>
   <Field1>1</Field1>
   <Field2>example1</Field1>
   <Field1></Field1>
   <Field4>540</Field1>
</Table1>

我想得到的是两个这样的字符串:

String1="Field1,Field2,Field3,Field4"
String2="1,example1,,540"

我现在拥有的是:

Dim queryF = From p In elem.Elements _
         Select p.Name 
Dim queryV = From p In elem.Elements _
        Select p.Value

我知道我可以将queryF和queryV转换为列表或数组然后生成我的字符串,但我想知道我是否可以直接在同一LINQ中执行

提前致谢

1 个答案:

答案 0 :(得分:1)

您无法控制LINQ查询返回的数据类型。该类型由LINQ提供程序(在本例中为LINQ to XML提供程序)确定。然而,你所知道的是,无论它返回什么,它总是会实现IEnumerable。由于String.Join方法的重载需要IEnumerable参数,因此您无需先将其转换为数组:

Dim elem As XElement = <Table1>
                           <Field1>1</Field1>
                           <Field2>example1</Field2>
                           <Field1></Field1>
                           <Field4>540</Field4>
                       </Table1>
Dim string1 As String = String.Join(",", From p In elem.Elements Select p.Name)
Dim string2 As String = String.Join(",", From p In elem.Elements Select p.Value)