使用LINQ将JArray中的字符串连接起来

时间:2014-10-29 17:40:10

标签: c# linq json.net

我有一个看起来像这样的JArray:

enter image description here

我使用下面的代码来获得预期的结果:6035940:8061090,6035940:8084337

我可以用Linq清理它吗?怎么样?

public static string GiveClientCampaignParam(JArray myArray)
{
    StringBuilder sb = new StringBuilder();

    foreach (var arrayItem in myArray)
    {
        string clientId = arrayItem["ClientId"].ToString();
        string campaignId = arrayItem["CampaignId"].ToString();

        sb.Append(clientId + ":" + campaignId + ",");
    }
    sb.Remove(sb.Length - 1, 1);

    return sb.ToString();
}

2 个答案:

答案 0 :(得分:5)

这应该有用。

return string.Join(",", myArray.Select(a => a["ClientId"] + ":" + a["CampaignId"]));

答案 1 :(得分:4)

使用string.JoinSelect将JArray元素投影到字符串:

public static string GiveClientCampaignParam(JArray myArray)
{
    return string.Join(",", myArray.Select(j => 
       string.Format("{0}:{1}", j["ClientId"], j["CampaignId"]);
}

使用string.Join也意味着您不需要从末尾减去额外的逗号。