Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串连接不起作用 foreach(dirs中的字符串di_子项){ Write(“\t\n”); }_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 字符串连接不起作用 foreach(dirs中的字符串di_子项){ Write(“\t\n”); }

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 + "/\">"

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

我只想连接这些字符串。我该怎么做?
提前感谢

您可以简单地使用
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");