C# 字符串连接不起作用 foreach(dirs中的字符串di_子项){ Write(“\t\n”); }
VS抱怨运算符“+”不能应用于“string”类型和方法组的操作数 我只想连接这些字符串。我该怎么做?C# 字符串连接不起作用 foreach(dirs中的字符串di_子项){ Write(“\t\n”); },c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,VS抱怨运算符“+”不能应用于“string”类型和方法组的操作数 我只想连接这些字符串。我该怎么做? 提前感谢您可以简单地使用StringBuilder.Append(),如下所示:- foreach (string di_child in dirs) { Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive + di_child.Name + "/\">"
提前感谢您可以简单地使用
StringBuilder.Append()
,如下所示:-
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");
}
或者试试这个:
StringBuilder sb = new StringBuilder();
sb.Append(someString);
“\t\n”
我怀疑驱动器实际上是一个函数,在这种情况下,您应该这样调用它:
"\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive() + di_child.Name + "/\">" + di_child.Name + "</a>\n"
“\t\n”
试试这个:
"\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive() + di_child.Name + "/\">" + di_child.Name + "</a>\n"
foreach(dirs中的字符串di_子项){
Write(String.Format(“\t\n”,驱动器,di\u child.Name,di\u child.Name));
}
一个问题:
您正在迭代字符串值并连接string.Name。我认为字符串没有附加任何属性“Name”。出现错误消息是因为drive
或di_child。Name
是一个方法而不是字符串
在foreach循环中,您将di_child
声明为string
,并且Name
不是string
的有效属性
你能确认一下驱动器的类型吗?如果是函数,则可能需要将其用作drive()
这个问题实际上可能是因为编译器对name使用了扩展方法,而您只需要使用di_child
而不是di_child.name
您在一条注释中说drive是一个DriveInfo局部变量
假设di_chld是一个字符串变量,并且假设DriveInfo类有一个Name属性,我猜您调用的.Name是错误的,所以我猜您应该有以下内容:
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));
}
Response.Write(“\t\n”);
正如一些人所建议的,通常最好使用String.Format或StringBuilder进行字符串连接什么是驱动器,听起来像是一种方法,也许你需要使用drive()?不可能知道这里发生了什么,因为我们不知道所涉及的任何类型<代码>驱动器
,dirs
,di_child.Name
驱动器
或di_child.Name
是方法。使用drive()
或di_child.Name()
(根据类型)。此外,Name不是string的有效属性@Guillherme:建议你发布更多的代码,这样这个问题就不会结束了。目前,你的问题中有一些错误,表明你要求我们解决一个与你所说的不同的问题。你怎么会知道驱动力是函数而不是变量的?可能是因为他读到了问题中的错误,并不是像其他6个人那样只写一个标准字符串concat答案,而是一个DriveInfo局部变量。当我的foreach函数是foreach(dirs中的System.IO.DirectoryInfo di_child)时,它连接到di_child,我不会在这里使用StringBuilder
,尽管它比+运算符好。在这样一个简单的例子中,我更喜欢使用String.Format()
方法来实现目标。@Nick.T:-这是正确的。我刚刚推荐了一种方法,我认为OP在处理大字符串时可能会使用这种方法!!else String.format绝对是另一种方法!!那是我的问题。谢谢你。您是如何看待不具有任何字符串类型的Name属性的intellisense的。:)欢迎有几分钟,当我看到这么多人回答不同的问题时,我也感到困惑--代码传播。com@AzharKhorasany从错误消息中,必须有一个名为Name的扩展方法,因此intellisense可能不会发现它。看来没人看到真正的问题。我们就像编译器一样,在错误的点上发疯,并且不后退。。。
Response.Write("\t<li class=\"directory collapsed\"><a href=\"#\" rel=\"" + drive.Name + di_child + "/\">" + di_child + "</a>\n");