vs2003:识别 DataRow[] 中的第一行

Posted

技术标签:

【中文标题】vs2003:识别 DataRow[] 中的第一行【英文标题】:vs2003: identify first row in DataRow[] 【发布时间】:2010-03-16 17:19:44 【问题描述】:

在以下代码中识别第一行的最佳方法是什么?

foreach(DataRow row in myrows)


if (first row )

...do this...

else

....process other than first rows..


【问题讨论】:

【参考方案1】:

您可以为此使用布尔标志:

bool isFirst = true;

foreach(DataRow row in myrows)

    if (isFirst)
    
        isFirst = false;
        ...do this...
    
    else
    
        ....process other than first rows..
    

【讨论】:

嗯...@Adam,我相信您回答这个问题是有充分理由的。我很想知道为什么最好使用布尔值来检查行索引是否== 0。更有效吗?谢谢! :-) @Javier:你的意思是打电话给Array.IndexOf(myrows, row) == 0?如果是这样,那么是的,这绝对更有效。如果您想知道索引,那么 Hunter 使用 for 循环的解决方案会更可取。如果您指的是row.Index,那么这就是它在其父DataTable 中的索引,不是在他描述的数组中。【参考方案2】:

你可以使用 for 循环代替

for(int i = 0; i < myrows.Count; i++) 

    DataRow row = myrows[i];
    if (i == 0)  
    else  

【讨论】:

【参考方案3】:

也许是这样的?

    foreach (DataGridViewRow row in dataGridView1.Rows)
    
        if (row.Index == 0)
        
            //...
        
        else
        
            //...
        
    

【讨论】:

他表示他有一个DataRow[],而不是DataTable。表中行的索引与其在任意数组中的索引之间没有必要的关联。【参考方案4】:

使用 int 循环遍历集合。

for (int i =0; i < myDataTable.Rows.Count;i++)

    if (i ==0)
    
       //first row code here
    
    else
    
       //other rows here
    

【讨论】:

【参考方案5】:

首先将DataRow转换为DataRowView:

How Can Convert DataRow to DataRowView in c#

然后:

    foreach (DataRowView rowview in DataView)

    if (DataRowView.Table.Rows.IndexOf(rowview.Row) == 0)
    
        // bla, bla, bla... 
    

【讨论】:

以上是关于vs2003:识别 DataRow[] 中的第一行的主要内容,如果未能解决你的问题,请参考以下文章

如何从 DataGridView 中的一行获取 DataRow

获取DataGridView上选中的一行并转换为一个DataRow类型

循环遍历 DataRow 以比较当前行数据和前一行数据

c#关于DataRow的用法

如何在 Visual Studio 2003 中重命名 C++ 源文件?

C# DataRow