Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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循环到底在这里做什么…请帮助我准确地理解它_C#_Asp.net_Visual Studio - Fatal编程技术网

C# foreach循环到底在这里做什么…请帮助我准确地理解它

C# foreach循环到底在这里做什么…请帮助我准确地理解它,c#,asp.net,visual-studio,C#,Asp.net,Visual Studio,谁能帮我理解这些代码行的真正含义…我理解但不完全理解…我的意思是foreach到底在这里做什么 if(dt.Rows.Count>0) { //GridView1.Visible=true; Gridview1.DataSource=dt; Gridview1.DataBind(); StringBuilder sb=新的StringBuilder(); foreach(dt.列中的数据列列列) { sb.追加(col.ColumnName+“,”); } 移除(sb长度-1,1); sb.Ap

谁能帮我理解这些代码行的真正含义…我理解但不完全理解…我的意思是foreach到底在这里做什么

if(dt.Rows.Count>0)
{
//GridView1.Visible=true;
Gridview1.DataSource=dt;
Gridview1.DataBind();
StringBuilder sb=新的StringBuilder();
foreach(dt.列中的数据列列列)
{
sb.追加(col.ColumnName+“,”);
}
移除(sb长度-1,1);
sb.Append(Environment.NewLine);
foreach(数据行中的数据行)
{
对于(int i=0;i
我们可以用StringWriter或string代替StringBuilder吗


第一个foreach追加列标题名。 第二个是附加单元格值。两者都用逗号分隔。 Ao您正在将GridView转换为csv

为什么不使用像CSV助手这样的简单转换器呢。 有你需要的一切。

第一个foreach追加列标题名称。 第二个是附加单元格值。两者都用逗号分隔。 Ao您正在将GridView转换为csv

为什么不使用像CSV助手这样的简单转换器呢。 有你需要的一切。

代码似乎正在尝试为数据表生成带有标题的csv文件。第一个for each循环通过
DataTable
中的列,并生成逗号分隔的列名字符串(由
StringBuffer
引用)

上面的代码段从逗号分隔的列名字符串中删除最后一个逗号,然后添加新行

 foreach (DataRow row in dt.Rows)
    {
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            sb.Append(row[i].ToString() + ",");
        }

        sb.Append(Environment.NewLine);
    }
foreach(数据行中的数据行)
{
对于(int i=0;i

上面的循环遍历数据表的每一行,并为数据表的每一列值创建一个逗号分隔的字符串。处理每一行后,将添加一个新行,以便下一行内容作为逗号分隔的字符串添加到新行中

代码似乎正在尝试为数据表生成带有标题的csv文件。第一个for each循环通过
DataTable
中的列,并生成逗号分隔的列名字符串(由
StringBuffer
引用)

上面的代码段从逗号分隔的列名字符串中删除最后一个逗号,然后添加新行

 foreach (DataRow row in dt.Rows)
    {
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            sb.Append(row[i].ToString() + ",");
        }

        sb.Append(Environment.NewLine);
    }
foreach(数据行中的数据行)
{
对于(int i=0;i
上面的循环遍历数据表的每一行,并为数据表的每一列值创建一个逗号分隔的字符串。处理每一行后,将添加一个新行,以便下一行内容作为逗号分隔的字符串添加到新行中

  • 第一个循环用逗号列出所有列名:
  • colname1、colname2、colname3、

  • 删除然后删除最后一个逗号并添加换行符
  • colname1、colname2、colname3\n

  • 第二个循环列出了每行每列的所有值
  • colname1、colname2、colname3\n
    row1col1value、row1col2value、row1col3value\n--请注意,此处未删除逗号
    row2col1value、row2col2value、row2col3value\n
    row3col1value、row3col2value、row3col3value\n
    row4col1val等…

    是的,我想你可以用字符串代替字符串生成器

  • 第一个循环用逗号列出所有列名:
  • colname1、colname2、colname3、

  • 删除然后删除最后一个逗号并添加换行符
  • colname1、colname2、colname3\n

  • 第二个循环列出了每行每列的所有值
  • colname1、colname2、colname3\n
    row1col1value、row1col2value、row1col3value\n--请注意,此处未删除逗号
    row2col1value、row2col2value、row2col3value\n
    row3col1value、row3col2value、row3col3value\n
    row4col1val等…


    是的,我认为可以使用字符串而不是字符串生成器。

    第一个循环是从Datatable中获取每个列名,并在stringBuilder后面附加分隔符逗号。然后修剪最后一个附加的逗号,并在其上添加新行。
    第二个循环是获取DataRow的所有数据值(逐行),然后是逗号并附加到同一个stringbuilder。

    第一个循环是获取Datatable中的每个列名,并在stringbuilder中附加分隔符逗号。然后修剪最后一个附加的逗号,并在其上添加新行。
    第二个循环是获取DataRow的所有数据值(逐行),然后使用逗号并附加到同一个stringbuilder。

    首先
    foreach
    :遍历列并将列名添加到
    sb
    。第二个
    foreach
    :迭代rowsWell本身应该是一个非常容易理解的概念。你有一些“事情”,想为每一件“事情”做点什么。现在,你在里面做的事情可以从非常简单到非常复杂。在这两种情况下,基本上都是收集数据并构建一个字符串,其中包含所有
     foreach (DataRow row in dt.Rows)
        {
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                sb.Append(row[i].ToString() + ",");
            }
    
            sb.Append(Environment.NewLine);
        }