Vinodh Muthusamy Ответов: 3

DataTable для запроса и получения lastmodified дата записи, используя LINQ в C#


Объект DataTable нужно запрашивать и получать дату последнего изменения записи уникальный идентификатор с помощью LINQ.

Ввод:

id        Name     Depart     ModifiedDate
S123      vin       cse        2018-06-29 13:24:00.723
S124      sham      EEE        2018-06-29 13:24:00.724
S123      Vin       ECE        2018-06-29 13:25:00.000


Мне нужен вывод как


id        Name     Depart     ModifiedDate
S123      Vin       ECE        2018-06-29 13:25:00.000
S124      sham      EEE        2018-06-29 13:24:00.724


Что я уже пробовал:

Мне нужен вывод как


id        Name     Depart     ModifiedDate
S123      Vin       ECE        2018-06-29 13:25:00.000
S124      sham      EEE        2018-06-29 13:24:00.724

3 Ответов

Рейтинг:
2

Krunal Rohit

В дополнение к решению № 1,

LINQ имеет OrderByDescending и Distinct методы. Как вы хотите уникальные записи по Айди, вам сначала нужно сгруппировать записи по идентификатору, применить к ним distinct, а затем отсортировать их.

var data = list.GroupBy(x => x.Id).Select(g => g.First()).ToList();
var datalist = data.Distinct().OrderByDescending(x => x.ModifiedDate);

Это может решить вашу проблему, попробуйте!


КР.


Рейтинг:
1

Simon_Whale

вот несколько веб-страниц, чтобы вы могли начать работу

c# - LINQ запрос на DataTable - переполнение стека[^]
Работа с LINQ to Entities & LINQ to DataTable[^]


Рейтинг:
1

George Swan

Прежде всего, вам нужно спрятать свой DataTable к IEnumerable так что вы можете использовать linq. Затем GroupBy то id колонка. Используйте resultSelector функция, которая передается в GroupBy оператор для выбора анонимного типа, содержащего самые последние данные DateTime в группе. Используйте values параметр и OrderByDecending, Select и First заявления, чтобы сделать это. В лямбда-выражении можно ссылаться на поле столбца в DataRow подобный этому.

dr.Field<string>("id")

Если вы застряли, напишите свой код, и я постараюсь вам помочь.