DataTable-除第一行外的每一行

本文关键字:一行 DataTable- | 更新日期: 2023-09-27 18:20:17

我在应用程序中使用DataTable进行一些计算。我需要遍历除第一行以外的所有行。有可能吗?

类似于:

DataTable dt;
foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/)
{
    //do something...
}

DataTable-除第一行外的每一行

LINQ是您的朋友:

DataTable dt;
foreach (DataRow r in dt.Rows.Cast<DataRow>().Skip(1))
{
    //do something...
}

这里需要调用Cast(),因为DataTable.Rows实现了非通用的IEnumerable,而linq的扩展方法仅适用于IEnumerable<T>

你还有另一个选择:

DataTable dt;
foreach (DataRow r in dt.AsEnumerable().Skip(1))
{
    //do something...
}

好的,你已经得到了答案,但如果你不想使用linq。检查表中行的索引:

            foreach (DataRow row in m_dtMatrix.Rows)
            {
                if (m_dtMatrix.Rows.IndexOf(row) != 0)
                {
                    ...
                }
            }

这是一个快速而肮脏的

DataTable dt;
bool isFirst = true;
foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/)
{
    if( isFirst ) {
        isFirst = false;
        continue;
    }
    //do something...
}