数据表 - foreach 行,除了第一行

发布于 2024-12-26 10:47:01 字数 209 浏览 2 评论 0原文

我在我的应用程序中使用 DataTable 进行一些计算。我需要迭代除第一行之外的所有行。是否可以?

像这样的东西:

DataTable dt;

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

I am using a DataTable for some calculations in my app. I need to do the iterate trough all the rows except the first one. Is it possible?

Something like:

DataTable dt;

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

渡你暖光 2025-01-02 10:47:01

LINQ 是您的朋友:

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

这里需要调用 Cast(),因为 DataTable.Rows 实现非泛型 IEnumerable 和 linq 的扩展方法仅适用于 IEnumerable

您还有另一种选择:

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

LINQ is your friend:

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

The call to Cast() is required here since DataTable.Rows implements the non-generic IEnumerable, and linq's extension methods are only available for IEnumerable<T>

You also have another option:

DataTable dt;
foreach (DataRow r in dt.AsEnumerable().Skip(1))
{
    //do something...
}
不羁少年 2025-01-02 10:47:01

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

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

Ok you got your answers but in case you donT want to use linq. Check the index of the row in the table:

            foreach (DataRow row in m_dtMatrix.Rows)
            {
                if (m_dtMatrix.Rows.IndexOf(row) != 0)
                {
                    ...
                }
            }
香橙ぽ 2025-01-02 10:47:01

这是一个快速而肮脏的

DataTable dt;

bool isFirst = true;

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

Here's a quick and dirty

DataTable dt;

bool isFirst = true;

foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/)
{
    if( isFirst ) {
        isFirst = false;
        continue;
    }
    //do something...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文