在第一列中的条件之后,从DataTable中删除所有行

时间:2019-02-28 17:02:53

标签: c# asp.net

我有一个DataTable,在这里我需要删除第一列中“ EOF”数据之后的数据行。例如,

CHECK_SUM | INPUT_CODE | TOKEN | SPEED
201865    | 56         | 1A    | 5
201866    | 48         | 1D    | 5
201867    | 87         | 2R    | 10
201868    | 45         | 2G    | 8
EOF
201869    | 99         | 0     | 0
201870    | 100        | 0     | 0

在此DataTable中,在值“ EOF”之后,我需要删除所有行。我怎样才能做到这一点 ?

1 个答案:

答案 0 :(得分:1)

尝试以下操作:

           int? EOF = dt.AsEnumerable()
                .Select((x, i) => new { row = x, index = i })
                .Where(x => x.row.Field<string>("CHECK_SUM") == "EOF")
                .Select(x => x.index)
                .FirstOrDefault();
            if(EOF != null)
            {
               DataTable dt2 = dt.AsEnumerable()
                   .Where((x, i) => i < EOF)
                   .CopyToDataTable();
            }