我在C#中有一个数据表,其中一个名为Point的列包含各种整数值。如何找到等于特定值的第一行的行号。例如。也许我想第一次发现数字52出现在“点列”中,并且它首先出现在第10行。我如何找到值10?
请注意,我要在此位置查找行号,而不是另一列的值,因此为什么这个问题不同于: Find row in datatable with specific id
答案 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;
请注意,在此示例中,我给出行号,而不是从零开始的索引。