我有一个像这样的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中执行
提前致谢
答案 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)