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

Kyl*_*yle 2 c# linq json.net

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

在此输入图像描述

我正在使用下面的代码来获得预期的结果: 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();
}
Run Code Online (Sandbox Code Playgroud)

juh*_*arr 5

这应该工作.

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


Dav*_*idG 5

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

public static string GiveClientCampaignParam(JArray myArray)
{
    return string.Join(",", myArray.Select(j => $"{j["ClientId"]}:{["CampaignId"]}"));
}
Run Code Online (Sandbox Code Playgroud)

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