如何将字符串值传递给集合?在 C#

How to pass String value to Collection? in 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";

我收到以下错误消息!

Cannot implicitly convert type 'string' to 'System.Collections.Generic.List' (CS0029) - D:\automation\OmnitureStatistics\OmnitureStatistics\TeardownUserCode.cs:144,23

请告诉我解决方法!!

您必须使用 List<T>Add() 方法,如下所示。

  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

您必须使用 List class 的 Add() 方法。这就是您将项目添加到列表的方式。

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");

您可以将逻辑移至辅助方法并将静态字符串保存在资源文件中。

如果摘要是列表或数组(如果是字符串),则无需调用 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);
    }    
}

我不确定 "summary" 是什么,没有提到,所以我将其视为参数列表。

  1. 你的比较总是会做同样的事情,因为你错过了“”: summary[3].ToString())=="false" // 字符串到字符串。

  2. 添加到列表应该是这样的: deviceScreenshot.Add(摘要[3].ToString()); 我知道大多数答案,但不知何故他们在这里忘记了 "ToString()"(除非它是一个字符串列表。在这种情况下,在这两种情况下都删除 "ToString()"。