Найти номер строки столбца с данными, содержащего определенное значение c#

У меня есть таблица данных на C# со столбцом под названием Point, который содержит различные целочисленные значения. Как найти номер первой строки, равный определенному значению. Например. Может быть, я хочу найти первый раз, когда число 52 появляется в столбце точек и сначала появляется в строке 10. Как мне найти значение 10?

Обратите внимание, что я хочу найти номер строки, а не значение другого столбца в этой позиции, поэтому этот вопрос отличается от: Найти строку в таблице данных с определенным идентификатором

Не думаю. В этой статье не рассказывается, как получить номер строки.

Daniel Wyatt 31.10.2018 12:46

Возможный дубликат Как получить номер строки из таблицы данных?

Peter B 31.10.2018 12:52

@ArunPratap Предполагая, что используется схема идентификатора по умолчанию и никакие строки никогда не удалялись, тогда да, идентификатор вернет номер строки.

addohm 31.10.2018 12:56
3
4
2 719
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Цикл 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;
    }
}

Следующее может сработать для вас:

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;

Обратите внимание, что в этом примере я даю номер строки, а не индекс, начинающийся с нуля.

Другие вопросы по теме