16

我不知道如何连接使用 JArray.Parse 获得的两个 JArray?必须保留数组的顺序,即第一个数组应该是第一个,并且以秒为单位的元素应该在后面。

4

4 回答 4

37

我使用了Merge方法,它修改了原来的 JArray:

 JArray test1 = JArray.Parse("[\"john\"]");
 JArray test2 = JArray.Parse("[\"doe\"]");
 test1.Merge(test2);
于 2017-05-24T15:38:16.613 回答
14

您可以JArray通过调用JArray.Add(element)where element 来自第二个 JArray 来将元素添加到一个。您需要遍历第二个 JArray 以添加所有这些元素,但这将完成您想要的:

for(int i=0; i<jarrayTwo.Count; i++)
{
    jarrayOne.Add(jarrayTwo[i]);
}

在上面的示例中jarrayOne,现在将包含第一个数组的所有元素,然后依次包含第二个数组的元素。您可以查看JArray 文档以获取更多详细信息。

于 2013-03-12T20:47:59.123 回答
10

您还可以使用联合方法:

JArray test1 = JArray.Parse("[\"john\"]");
JArray test2 = JArray.Parse("[\"doe\"]");
test1 = new JArray(test1.Union(test2));

现在test1

[
  "john",
  "doe"
]
于 2014-09-28T06:52:03.800 回答
3

对于您拥有的通用案例,我的两美分n JArray

IEnumerable<JArray> jarrays = ...
var concatenated = new JArray(jarrays.SelectMany(arr => arr));

并将其投影到带有两个的原始问题上JArray

JArray jarr0 = ...
JArray jarr1 = ...
var concatenated = new JArray(new[] { jarr0, jarr1 }.SelectMany(arr => arr));
于 2018-01-11T13:47:15.513 回答