我将使用我的心理调试能力假设几件事:
CampaignManagementService.GetAdvertisers
接受 astring
并返回 aDictionary<int, Advertiser>
字典的键是返回的广告商的 ID。
您对其执行 string.Join(...) ,因此您将获得一个逗号分隔的列表,该列表很容易传输到客户端并在那里显示
您需要以某种方式为您从字典中获得的所有广告商获取所有广告系列。
每个广告商的活动都存储在Dictionary<int, string>
其中,键是活动的 ID,值是活动的名称
在这些假设下:
var ticket = (string) Session["ticket"];
var advertisers = CampaignManagementService.GetAdvertisers(ticket);
会给你广告商词典
var advertiserIDs = advertisers.Select(kv => kv.Key)
var strAdvertiserIDs = advertisers.Select(kv => kv.Key.ToString())
并将分别为您提供一个IEnumerable<int>
和 a IEnumerable<string>
,其中将包含广告客户 ID
var csvAdvertisers = string.Join(", ", strAdvertiserIDs)
将为您提供以逗号分隔的原始 ID 列表(.ToArray()
不需要,因为string.Join
有一个接受 的重载IEnumerable<string>
)。
接下来,要获取所有广告,您可以使用SelectMany方法,如下所示:
var campaignsKvp = advertiserIDs.SelectMany(id =>
CampaignManagementService.GetCampaigns(ticket, id))
这将为您提供一个IEnumerable<KeyValuePair<int, string>>
不是非常好的数据结构,但您可以使用以下方法对其进行转换:
var campaigns = campaignsKvp.Select(kvp => kvp.Key.ToString() + "-"+kvp.Value);
var csvCampaigns = string.Join(", ", campaigns)