c# - 将两个 List<string> 值添加到对象 {get,内部集;} 时出错

标签 c# .net azure

我正在尝试添加 List<string> container = new List<string>()config.ContainerNames.Add(String.Join("\n",container));到另一个类中的对象并替换 return container;return config.ListContainerData; .

ListContainer()

public static List<string> ListContainer(StartConfig config)
{
    if (config != null || config.BlobClient != null)
    {
        config = Program.GetConfig();
    }
    if (config == null)
    {
        throw new ArgumentNullException("config");
    }
    if (config.BlobClient == null)
    {
        throw new ArgumentException("BlobClient must not be null", "config");
    }
    List<string> container = new List<string>();

    //Get the list of the blob from the above container
    IEnumerable<CloudBlobContainer> containers = config.BlobClient.ListContainers();

    foreach (CloudBlobContainer item in containers)
    {
       config.ListContainerData.Add(container.Add(item.Name));

        config.ContainerNames.Add(String.Join("\n", container));
    }

    return container; //replace with config.ListContainerData;
}

在我的foreach()内我打电话config.ListContainerData.Add(container.Add(item.Name));这给了我一个错误:无法将 void 转换为字符串

StartConfig类

public class StartConfig
{
    public StartConfig()
    {
        ContainerNames = new List<string>();
    }

    public CloudStorageAccount StorageAccount { get; internal set; }
    public CloudBlobClient BlobClient { get; internal set; }
    public CloudBlobContainer Container { get; internal set; }

    public List<string> ContainerNames { get; internal set; }
    public List<string> ListContainerData { get; internal set; }       
}

我还调用了一个名为 GetConfig() 的方法它正在实例化 StartConfig类(Class)。 (即 StartConfig config = new StartConfig(); )根据我的理解,我应该能够简单地添加 container && config.ContinerNamesconfig.ListContainerData .

最佳答案

问题是List.Add()方法不返回列表本身。请参阅 MSDN 上的签名:https://msdn.microsoft.com/en-us/library/3wcytfd1%28v=vs.110%29.aspx

public void Add(
    T item
)

因此通过调用config.ListContainerData.Add(container.Add(item.Name));您实际上正在添加 void ,不是List<string>正如预期的那样。

拆分调用并根据您想要实现的目标添加容器或新项目(假设如下):

ListContainerData = container;

关于c# - 将两个 List<string> 值添加到对象 {get,内部集;} 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602031/

相关文章:

java - 启动完成后 BroadcastReceiver 不工作

c# - 您所见过的最好的WPF开源项目

azure - 路由到 Azure Blob 的最有效方法是什么?

c# - XNode.DeepEquals 认为自闭合标签和闭合标签是不同的

c# - 如何将 DataGridView 绑定(bind)到 SQLite 数据库?

c# - 将对象传递给 jint 中的函数并返回值

c# - 字符串生成器有什么作用?

reporting-services - Azure SQL 报告服务是否完全替代 SSRS?

ruby-on-rails - 成功使用 Azure 机器学习 API?

c# - 如何检查所有两个对象的属性是否相等,包括派生属性?