字符串连接不起作用

时间:2012-11-28 10:53:01

标签: c# asp.net asp.net-mvc asp.net-mvc-4

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抱怨运营商&#39; +&#39;不能应用于&#39; string&#39;类型的操作数和方法组。

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

6 个答案:

答案 0 :(得分:1)

一个问题:

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

答案 1 :(得分: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"

答案 2 :(得分:0)

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

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

答案 3 :(得分: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));
}

答案 4 :(得分:0)

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

在您的foreach循环中,您宣布di_childstringName不是string的有效属性。

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

问题可能实际上是因为编译器使用扩展方法进行名称,您只需使用di_child而不是di_child.Name

答案 5 :(得分:0)

您在其中一条评论中说驱动器是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进行字符串连接通常会更好