0
foreach (string di_child in dirs) { 
Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive + di_child.Name + "/\">" + di_child.Name + "</a>\n");
}

VS 抱怨运算符“+”不能应用于“字符串”类型的操作数和方法组。

我只想连接这些字符串。我怎样才能做到这一点?提前致谢

4

6 回答 6

1

一个问题:

您正在迭代字符串值并连接 string.Name。我认为字符串上没有任何属性“名称”。

于 2012-11-28T10:59:44.563 回答
0

您可以简单地使用StringBuilder.Append(),如下所示:-

  StringBuilder sb = new StringBuilder();
  sb.Append(someString);

或试试这个:

  "\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive() + di_child.Name + "/\">" + di_child.Name + "</a>\n"
于 2012-11-28T10:55:48.107 回答
0

我怀疑这drive实际上是一个函数,在这种情况下你应该这样称呼它:

 "\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive() + di_child.Name + "/\">" + di_child.Name + "</a>\n"
于 2012-11-28T10:56:25.440 回答
0

尝试这个 :

foreach (string di_child in dirs) { 
  Response.Write(String.Format("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"{0}{1}/\">{2}</a>\n",drive,di_child.Name,di_child.Name));
}
于 2012-11-28T10:57:43.457 回答
0

出现错误消息是因为driveordi_child.Name是一种方法而不是字符串。

在您的 foreach 循环中,您声明di_child为 astring并且Name不是string.

你能确认驱动器的类型吗?如果它是一个函数,您可能需要将其用作drive().

这个问题实际上可能是因为编译器正在使用扩展方法作为名称,而您只需要使用di_child而不是di_child.Name

于 2012-11-28T11:06:05.927 回答
0

您在其中一条评论中说 drive 是 DriveInfo 局部变量

假设 di_chld 是一个字符串变量,并且假设 DriveInfo 类有一个 Name 属性,我猜你在错误的事情上调用 .Name 所以我猜你应该有这个:

Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive.Name + di_child + "/\">" + di_child + "</a>\n");

正如某些人所建议的那样,通常最好使用 String.Format 或 StringBuilder 进行字符串连接

于 2012-11-28T11:14:57.183 回答