2016-04-13 5 views
0

私は別のklassでのオブジェクトにList<string> container = new List<string>()config.ContainerNames.Add(String.Join("\n",container));を追加し、return config.ListContainerData;return container;を交換しようとしています。エラー{取得、内部設定;}

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));を呼び出しています。

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

私もStartConfigのklassのインスタンスを生成さGetConfig()というメソッドを呼び出しています。 (すなわち、StartConfig config = new StartConfig();)私の理解から、私は単に & & config.ContinerNamesconfig.ListContainerDataに追加することができます。

答えて

3

問題は、List.Add()メソッドがリスト自体を返さないということです。予想通り、あなたが効果的にvoid、ないList<string>を追加するconfig.ListContainerData.Add(container.Add(item.Name));を呼び出すことにより、このようhttps://msdn.microsoft.com/en-us/library/3wcytfd1%28v=vs.110%29.aspx

public void Add(
    T item 
) 

:MSDNの署名を参照してください。

スプリットコールのいずれかあなたは(ここでは下の仮定)を達成しようとしているものに応じてコンテナまたは新しい項目を追加します。

ListContainerData = container; 
+0

はあなたにティムをありがとう!しかし、私は今、エラーを取得しています。* 'var subItem = container.Add(item.Name);の暗黙的に型付けされた変数*にvoidを代入できません; – jdave

+0

はい、削除しました。これはBSです。 ListContainerDataには何が含まれていますか? –

+0

'container'と' config.ContainerNames'を含んでいなければなりません。 – jdave

関連する問題