2015-05-07 5 views
-2

Это мой код:Как передать значение String в Collection? в C#

List<string> deviceScreenshot=new List<string>(); 
List<string> fiddlerScreenshot=new List<string>(); 

if(string.IsNullOrEmpty(summary[3].ToString())==false) 
    deviceScreenshot=summary[3]; 
else 
    deviceScreenshot="Screenshot not found"; 

if(string.IsNullOrEmpty(summary[4].ToString())==false) 
    fiddlerScreenshot=summary[4]; 
else 
    fiddlerScreenshot="Screenshot not found"; 

Я получаю следующее сообщение об ошибке!

Не удается неявно преобразовать тип 'строка' в 'System.Collections.Generic.List' (CS0029) - D: \ автоматизация \ OmnitureStatistics \ OmnitureStatistics \ TeardownUserCode.cs: 144,23

Пожалуйста, скажите мне решение для этого!

+2

Что такое 'deviceScreenshot' –

+0

Это это список - Список deviceScreenshot = новый список (); \t \t \t \t Список fiddlerScreenshot = новый список (); – Aravin

+0

если 'deviceScreenshot' это коллекция затем добавить, как эти«deviceScreenshot.add (резюме [3]); ' –

ответ

2

Вы должны использовать метод Add()List<T>, как показано ниже.

List<string> deviceScreenshot=new List<string>(); 
    List<string> fiddlerScreenshot=new List<string>(); 


    if(string.IsNullOrEmpty(summary[3].ToString())==false) 
     deviceScreenshot.Add(summary[3]); 
    else 
     deviceScreenshot.Add("Screenshot not found"); 

    if(string.IsNullOrEmpty(summary[4].ToString())==false) 
     fiddlerScreenshot.Add(summary[4]); 
    else 
     fiddlerScreenshot.Add("Screenshot not found"); 

Here's the MSDN link for more information on List

+1

Ну, 'Добавить', а не' добавить' ... –

+0

@JonSkeet Thanks Обновлено –

+0

@RahulNikate, Thankz – Aravin

2

Вы должны использовать метод Add() класса List. Вот как вы добавляете элементы в список.

if(string.IsNullOrEmpty(summary[3].ToString())==false) 
    deviceScreenshot.Add(summary[3]); 
else 
    deviceScreenshot.Add("Screenshot not found"); 

if(string.IsNullOrEmpty(summary[4].ToString())==false) 
    fiddlerScreenshot.Add(summary[4]); 
else 
    fiddlerScreenshot.Add("Screenshot not found"); 
1

Вы можете переместить логику в вспомогательный метод и сохранить статическую строку в файле ресурсов.

Если сводка представляет собой список или массив, если строка, то вам не нужно вызывать ToString().

class Program 
{ 
    static void Main(string[] args) 
    {  
     new Program().AddStringToCollection(); 
    }    

    private void AddStringToCollection() 
    { 
     var summary = new string[] {"A", "B", "C", "", "D"}; 

     var deviceScreenshot = new List<string>(); 
     var fiddlerScreenshot = new List<string>(); 

     AppendExceptWhiteSpace(deviceScreenshot, summary[3]); 
     AppendExceptWhiteSpace(fiddlerScreenshot, summary[4]); 
    } 

    //move to a resource file if possible 
    const string NotFoundText = "Screenshot not found"; 

    //in a utility class this could also be an extension method 
    private void AppendExceptWhiteSpace(List<string> list, string value) 
    { 
     //not sure if you want empty strings, otherwise change back to IsNullOrEmpty 
     string text = string.IsNullOrWhiteSpace(value) 
       ? NotFoundText 
       : value; 

     list.Add(text); 
    }  
} 
1

Я не уверен, что такое «резюме», это не упоминалось, поэтому я буду рассматривать его как список параметров.

  1. ваше сравнение всегда будет делать то же дело вам не хватает «»: сводной [3] .ToString()) == «ложной» // строки в строку.

  2. , добавление в список должно быть следующим: deviceScreenshot.Add (summary [3] .ToString()); Я знаю, что большинство ответ, но почему-то они забыли «ToString()» здесь (если это не список строк. В этом случае удалите «ToString()» в обоих случаях.