Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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# 在datarow上的Foreach循环中获取列索引_C# - Fatal编程技术网

C# 在datarow上的Foreach循环中获取列索引

C# 在datarow上的Foreach循环中获取列索引,c#,C#,在下面的Foreach循环中 foreach (DataRow row in dt.Rows) { foreach (DataColumn col in dt.Columns) { var val=row[col].ToString() var index=?? } } 如何检查当前列是否为最后一列?请尝试此操作 foreach (DataRow row in dt.Rows) { var index =0; foreach (Da

在下面的Foreach循环中

foreach (DataRow row in dt.Rows)
{
   foreach (DataColumn col in dt.Columns)
   {
       var val=row[col].ToString()
       var index=??
   }
}
如何检查当前列是否为最后一列?

请尝试此操作

foreach (DataRow row in dt.Rows)
  {
   var index =0;
   foreach (DataColumn col in dt.Columns)
       {
        var val=row[col].ToString()

          index++;
          if(index == dt.Columns.Count)
            //true
       }
  }

您也可以遵循以下步骤:

foreach (DataRow row in dt.Rows)
{         
     for(int i=0; i< dt.Columns.Count; i++)
     {
        var val=row[i].ToString()
        // here i will be the index
        // dt.Columns[i] will be the column
     }
}
foreach(数据行中的数据行)
{         
对于(int i=0;i

如果您的要求是对最后一列执行某些操作[如问题中所述]意味着不需要进行迭代,那么您可以像这样使用列索引:
行[dt.Columns.Count-1]

使用以下代码和平

int total=dt.Columns.Count;
int i=0;
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
   {
if(i==total-1)
{

}

}

这应该对您有所帮助

var index,val;
foreach (DataRow row in dt.Rows)
{
 foreach (DataColumn col in dt.Columns)
   {
      index=dt.Columns.IndexOf(col);
      val=row[index].ToString();

    if (index == dt.Columns.Count-1)
        //your code here...
   }
}

如果我没弄错的话,你要找的东西是有序的

    foreach (DataRow row in dt.Rows)
     {
       foreach (DataColumn col in dt.Columns)
         {
           var index = col.Ordinal+1; // Current column index
           if(index == dt.Columns.Count) // if column is last column in current row
              {
                your logice goes here
              }
          }
     }
它提供列项目的当前位置


检查此项

使用for循环或使用一个整数来增加dt.Columns.IndexOf(col)
请参见此处:
if(dt.Columns.IndexOf(dt.Columns.Cast().LastOrDefault())==dt.Columns.IndexOf(col)){}
您想要什么?列索引,根据您的标题,还是检查当前列是否是最后一列(根据您的问题)?前一种情况由@Fabio回答,后一种情况将由@Fabio和
dt.Columns.Count
组合而成。
var index,val;
foreach (DataRow row in dt.Rows)
{
 foreach (DataColumn col in dt.Columns)
   {
      index=dt.Columns.IndexOf(col);
      val=row[index].ToString();

    if (index == dt.Columns.Count-1)
        //your code here...
   }
}
    foreach (DataRow row in dt.Rows)
     {
       foreach (DataColumn col in dt.Columns)
         {
           var index = col.Ordinal+1; // Current column index
           if(index == dt.Columns.Count) // if column is last column in current row
              {
                your logice goes here
              }
          }
     }