字符串不包含add方法的定义

本文关键字:定义 方法 add 包含 字符串 | 更新日期: 2023-09-27 18:19:27

我正在.NET中执行一个程序。我正在对程序进行一些更改。我收到一个错误

字符串不包含add方法的定义。

我不知道如何纠正这个错误。

private string process(string fname)
{
  //string errs = "";
  string Strings = "";
  string[] lines = File.ReadAllLines(fname);
  StringBuilder b = new StringBuilder();
  for (int i = 1; i < lines.Length; i++)
  {
    string[] sa = lines[i].Split(new string[] { "," }, StringSplitOptions.None);
    bool ok = false;
    if (sa[1].CompareTo("EQ") == 0)
      ok = true;
    if (!ok && sa[1].CompareTo("BE") != 0)
      continue;
    string name = sa[0];
    int token = NSECM.Lookup(name);
    if (token == 0)
    {
      //errs += "Symbol " + name + " not found'r'n";
      continue;
    }
    //int open = (int)(double.Parse(sa[2]) * 100 + 0.5);
    //int high = (int)(double.Parse(sa[3]) * 100 + 0.5);
    //int low = (int)(double.Parse(sa[4]) * 100 + 0.5);
    //int close = (int)(double.Parse(sa[5]) * 100 + 0.5);
    //uint vol = uint.Parse(sa[8]);
    //int date = cdate(sa[10]);
    //uint time = cvt(date);
    uint open = (uint)(double.Parse(sa[2]) * 100 + 0.5);
    uint high = (uint)(double.Parse(sa[3]) * 100 + 0.5);
    uint low = (uint)(double.Parse(sa[4]) * 100 + 0.5);
    uint close = (uint)(double.Parse(sa[5]) * 100 + 0.5);
    uint vol = uint.Parse(sa[8]);
    int date = cdate(sa[10]);
    //b.Append("D");
    b.Append("S" + (1000000 + token).ToString().Substring(1));
    b.Append("-" + date);
    b.Append("|D");
    b.Append(Encode.encode6(cvt(date)));
    //b.Append(Encode.encode6(time));
    b.Append(Encode.encode4(open));
    b.Append(Encode.encode4(high));
    b.Append(Encode.encode4(low));
    b.Append(Encode.encode4(close));
    b.Append(Encode.encode6(vol));
    //b.Append("'n");
    Strings.Add(b.ToString());
  }  
}  

字符串不包含add方法的定义

string类没有定义一个名为Add的方法,因此Strings.Add(b.ToString())行不会编译。根据你喜欢做什么,我可以想象有两种可能的解决方案

  1. 您希望将Strings的当前值与b:Strings += b.ToString()的值组合。但请记住,您总是将内容附加到同一个StringBuilder中,所以最终会添加很多内容。但另一方面,您可以在for循环之后编写Strings = b.ToString(),因为这样您就可以将所有文本添加到StringBuilder中
  2. 您希望将b的当前值作为新字符串添加到字符串集合中。在这种情况下,Strings应该是一个集合。Add方法建议您应该查看List类。List<string> Strings = new List<string>();。现在您可以使用Strings.Add(b.ToString())了。但这里也要记住,您总是在不刷新的情况下附加到同一个StringBuilder

string类上没有Add()方法:

Strings.Add(b.ToString());

您可以使用+=操作符来连接字符串:

Strings += b.ToString();

使用StringBuilder而不是字符串。它支持append方法来连接字符串。此外,StringBuilder是可变的。当我们使用"StringBuilder"对象时,会使用Append方法。这意味着,在现有字符串上进行插入。StringBuilder对象上的操作比String操作更快,因为复制是在同一位置完成的。在必须执行大量字符串操作的情况下,StringBuilder的使用效率更高