查找包含特定值C#的数据表列的行号

时间:2018-10-31 11:39:20

标签: c# datatable

我在C#中有一个数据表,其中一个名为Point的列包含各种整数值。如何找到等于特定值的第一行的行号。例如。也许我想第一次发现数字52出现在“点列”中,并且它首先出现在第10行。我如何找到值10?

请注意,我要在此位置查找行号,而不是另一列的值,因此为什么这个问题不同于: Find row in datatable with specific id

2 个答案:

答案 0 :(得分:1)

for循环可能是最简单的方法。此答案返回DataTable中与特定值匹配的行的索引(行号)。

int firstRow = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
    var row = dt.Rows[i];
    int point = Convert.ToInt32(row["Point"].ToString());
    if (point == 52)
    {
        // i is the first row matching your condition
        firstRow = i;
        break;
    }
}

答案 1 :(得分:0)

以下内容可能对您有用:

DataTable table = new DataTable("SomeData");
table.Columns.Add("Point", typeof(int));
table.Rows.Add(5);
table.Rows.Add(7);
table.Rows.Add(52);
table.Rows.Add(2);
table.Rows.Add(1);
table.Rows.Add(4);
table.Rows.Add(9);

var row = table.AsEnumerable().Select((r, i) => new { Row = r, Index = i }).Where(x => (int)x.Row["Point"] == 52).FirstOrDefault();
int rowNumber = 0;
if (row != null)
    rowNumber = row.Index + 1;

请注意,在此示例中,我给出行号,而不是从零开始的索引。