我有一个看起来像这样的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();
}
答案 0 :(得分:5)
这应该有用。
return string.Join(",", myArray.Select(a => a["ClientId"] + ":" + a["CampaignId"]));
答案 1 :(得分:4)
使用string.Join和Select将JArray元素投影到字符串:
public static string GiveClientCampaignParam(JArray myArray)
{
return string.Join(",", myArray.Select(j =>
string.Format("{0}:{1}", j["ClientId"], j["CampaignId"]);
}
使用string.Join也意味着您不需要从末尾减去额外的逗号。