【问题标题】:Saving multiple responses from foreach c#保存来自 foreach c# 的多个响应
【发布时间】:2021-12-23 20:08:12
【问题描述】:

创建使用集群名称从 AWS 获取服务名称的 C#/.net 应用程序。使用 AWS .net 开发工具包

能够检索集群名称并将它们保存在字符串列表中:

AmazonECSClient client = new AmazonECSClient();
ListClustersRequest listClusterREquest = new ListClustersRequest();
var responseClusterList = await client.ListClustersAsync(listClusterREquest);
List<string> clusterArns = responseClusterList.ClusterArns;

现在尝试使用集群名称检索服务列表。我在将每个响应保存回名为 serviceArns 的列表时遇到问题。它仅将最后一个响应保存到名为 serviceArns 的列表中。应该有大约 20 条回复保存到列表中。


ListServicesRequest listRequest = new ListServicesRequest();
List<string> serviceArns = null;
ListServicesResponse responsethree = new ListServicesResponse();

foreach (var item in clusterArns)
      {
                listRequest.Cluster = item;
                ListServicesResponse listResponse = await client.ListServicesAsync(listRequest);
    serviceArns = listResponse.ServiceArns;


};

【问题讨论】:

    标签: c# .net amazon-web-services amazon-ecs


    【解决方案1】:

    您应该在开始时初始化列表并根据需要添加元素。目前,每次迭代时,列表都会被设置,它应该在哪里添加它。

    ListServicesRequest listRequest = new ListServicesRequest();
    List<string> serviceArns = new();
    ListServicesResponse responsethree = new ListServicesResponse();
    
    foreach (var item in clusterArns)
    {
        listRequest.Cluster = item;
        ListServicesResponse listResponse = await client.ListServicesAsync(listRequest);
        serviceArns.AddRange(listResponse.ServiceArns);
    };
    

    【讨论】:

    • await后面的换行符,触发了我,这是什么怪物啊。 愤怒 :)
    • 谢谢它正在使用 AddRange()。由于响应是 List 这就是我们使用 AddRange() 而不是 Add() 的原因?
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多