【发布时间】:2013-03-12 20:28:51
【问题描述】:
我不知道如何连接使用 JArray.Parse 获得的两个 JArray?必须保留数组的顺序,即第一个数组应该是第一个,以秒为单位的元素应该在后面。
【问题讨论】:
-
就是这样……我不知道该怎么办。我是 JSON.NET 的新手,期待 Append 或 Concatenate API,但没有看到?
我不知道如何连接使用 JArray.Parse 获得的两个 JArray?必须保留数组的顺序,即第一个数组应该是第一个,以秒为单位的元素应该在后面。
【问题讨论】:
我使用了Merge方法,修改了原来的JArray:
JArray test1 = JArray.Parse("[\"john\"]");
JArray test2 = JArray.Parse("[\"doe\"]");
test1.Merge(test2);
【讨论】:
您可以通过调用JArray.Add(element) 将元素添加到一个JArray,其中元素来自第二个JArray。您需要遍历第二个 JArray 以添加所有这些元素,但这将完成您想要的:
for(int i=0; i<jarrayTwo.Count; i++)
{
jarrayOne.Add(jarrayTwo[i]);
}
在上面的示例中,jarrayOne 现在将包含第一个数组的所有元素,然后依次包含第二个数组的元素。您可以通过JArray documentation查看更多详细信息。
【讨论】:
也可以使用联合方法:
JArray test1 = JArray.Parse("[\"john\"]");
JArray test2 = JArray.Parse("[\"doe\"]");
test1 = new JArray(test1.Union(test2));
现在test1 是
[
"john",
"doe"
]
【讨论】:
我的两分钱用于您拥有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));
【讨论】: