簡體   English   中英

元組 <List<string> ,列表 <string> &gt;調用.AddRange時給出NullReferenceException

[英]Tuple<List<string>,List<string>> giving NullReferenceException when .AddRange is called

我試圖將config.ContainerNamescontainer添加到我的public Tuple<List<string>,List<string>> ListContainerData {get; internal set;} public Tuple<List<string>,List<string>> ListContainerData {get; internal set;} 但是我遇到了NullReferenceException

ListContainer()

public static Tuple<List<string>,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)
        {
            container.Add(item.Name);

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

        }

        config.ListContainerData.Item2.AddRange(config.ContainerNames);
        config.ListContainerData.Item1.AddRange(container);

        //Adding a print statement

        Console.WriteLine(String.Join("\n", container));
        Console.WriteLine("\n");

        // Console.WriteLine(startConfig.ContainerNames.ToString());

        return config.ListContainerData;


    }

StartConfig klass

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 Tuple<List<string>,List<string>> ListContainerData { get; internal set; }

}

我不確定為什么config.ListContainerData.Item1.AddRange(container); && config.ListContainerData.Item2.AddRange(config.ContainerNames); 都拋出Null異常,有人可以解釋為什么會發生這種情況以及我如何解決Null異常? 謝謝!

在添加之前,您需要創建ListContanierData和這兩個列表:

public static Tuple<List<string>,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)
    {
        container.Add(item.Name);

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

    }

    config.ListContainerData = new Tuple<List<string>, List<string>>(new List<string>(), new List<string>());
    //or
    //config.ListContainerData = Tuple.Create(new List<string>(), new List<string>());
    config.ListContainerData.Item2.AddRange(config.ContainerNames);
    config.ListContainerData.Item1.AddRange(container);

    //Adding a print statement

    Console.WriteLine(String.Join("\n", container));
    Console.WriteLine("\n");

    // Console.WriteLine(startConfig.ContainerNames.ToString());

    return config.ListContainerData;


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM