найти номер строки столбца с данными, содержащего конкретное значение C # - PullRequest
0 голосов
/ 31 октября 2018

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

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

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

На вас могут работать:

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;

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

0 голосов
/ 31 октября 2018

Цикл 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...