我正在用.NET做一个程序。我正在对程序进行一些更改。我收到了错误
String不包含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());
}
}
答案 0 :(得分:3)
string
类没有定义名为Add
的方法,因此行Strings.Add(b.ToString())
无法编译。根据您的喜好,我可以想象出两种可能的解决方案
Strings
的当前值与b
的值Strings += b.ToString()
合并。但请记住,你总是将东西附加到同一个StringBuilder,所以最后你添加了很多东西。但另一方面,您可以在for循环之后编写Strings = b.ToString()
,因为那时您已将所有文本添加到StringBuilder。b
的当前值作为新字符串添加到字符串集合中。在这种情况下,Strings
应该是一个集合。 Add
方法建议您查看List
类。 List<string> Strings = new List<string>();
。现在您可以使用Strings.Add(b.ToString())
。但是在这里请记住,你总是追加到同一个StringBuilder
,而不是冲洗它!答案 1 :(得分:1)
Add()
类上没有string
方法:
Strings.Add(b.ToString());
您可以使用+=
运算符来连接字符串:
Strings += b.ToString();
答案 2 :(得分:1)
使用StringBuilder而不是string。它支持append方法来连接字符串。而且StringBuilder是可变的。当我们使用“StringBuilder”对象时,使用Append方法。这意味着,对现有字符串进行插入。 StringBuilder对象的操作比String操作更快,因为复制完成到同一位置。在必须执行大量字符串操作的情况下,使用StringBuilder会更有效