amit_83 Ответов: 2

как найти первую строку и вернуться из linq


Всем Привет,
Я хочу найти одну строку из datatable.
У меня есть более 1 строки с одним и тем же идентификатором в таблице данных. Я хочу найти одну строку данных. Если строка находится с идентификатором, то выберите строку и разорвите ее. Как я могу достичь этого с помощью LINQ?

2 Ответов

Рейтинг:
2

Member 12611698

остальное


Рейтинг:
14

Karthik_Mahalingam

int id = 2;
       var item = lstData.FirstOrDefault(k => k.ID == id);
      if (item != null)
      {
// use the Item object to read the properties.
          // your code here...
      }


Его всегда лучше использовать FirstOrDefault вместо single, если вы собираетесь искать primary key value тогда мы можем использовать singleordefault
если мы сомневаемся, что дубликаты записей могут содержать, то мы можем пойти на FirstOrDefault.


DataRow drr = dt.AsEnumerable().Where(dr => dr["P"] == id).First();
       var index = dt.Rows.IndexOf(drr);


amit_83

Спасибо, я хочу получить индекс отображения строки в datatable.

Karthik_Mahalingam

можете ли вы предоставить дополнительную информацию?

amit_83

Строкаданных СРБ = ДТ.Методом asenumerable().Где(д-р =&ГТ; доктор.Поле&ЛТ;идентификатор&ГТ;("П") == ИД)
.Выберите(д-р =&ГТ; д).Первый();

Вместо того чтобы получать строку, я хочу знать индекс строки. Можно ли получить индекс строки в таблице непосредственно из LINQ?

Karthik_Mahalingam

проверьте мое обновленное решение..

amit_83

Я уже знаю это, его 2-ступенчатый процесс, влияет ли он на производительность?

Karthik_Mahalingam

тогда у работает зайти в DataTable фильтр, а не по LINQ...

Karthik_Mahalingam

попробуй вот так
DataRow[] rows = dt.Select("p = 2");

SarveshShukla

Это даст вам удостоверение личности
var x = dt.Методом asenumerable().Где(dr => dr.Field("P") == id)
.Выберите(dr => dr.id).во-первых();