[英]Tuple<List<string>,List<string>> giving NullReferenceException when .AddRange is called
我試圖將config.ContainerNames
和container
添加到我的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.