SnvMohan Ответов: 1

C# - группировка данных с помощью linq


Мой datatable как

Company	Name	Department
A	Raja	Mechanical
B	Mano	Electrical
A	Mohan	Computer
B	Rajesh	Computer
C	Siva	Robotics
D	Jeeva	Computer
C	Prakash	Electrical
A	Vinoth	Mechanical


Я хочу сгруппироваться, как показано ниже

Company	Name	Department
A	Raja	Mechanical
A	Mohan	Computer
A	Vinoth	Mechanical
B	Mano	Electrical
B	Rajesh	Computer
C	Siva	Robotics
C	Prakash	Electrical
D	Jeeva	Computer



Название компании должно быть таким. Как я могу сгруппировать эти данные в datatable с помощью LINQ .. примечание: Я хочу группировать, а не сортировать. Пожалуйста, помогите мне.

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

Я попробовал ниже, но его возвращение первой строки данных группировки не все. я хочу, чтобы все сгруппированные данные были в datatable

ДТ.Методом asenumerable().Метод groupBy(строки =&ГТ; подряд.Поле & lt;string> ("Компания")).Выберите(г =&ГТ; г. Во-первых()).CopyToDataTable()

Karthik_Mahalingam

ты собираешься выставить его где-нибудь?

F-ES Sitecore

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

SnvMohan

s, Я должен сгруппировать эти данные и отобразить их где-то еще, но я могу получить datatable, как описано выше

Karthik_Mahalingam

сколько полей в таблице?

SnvMohan

10 колонок

SnvMohan

Я хочу сгруппировать данные по названию компании, а не по сортировке по названию компании

Karthik_Mahalingam

создайте класс сущностей и преобразуйте datatable в список, а затем используйте linq для группировки, чтобы отобразить его, Linq to entities облегчит вашу работу.

SnvMohan

Я думаю, что это сложно для меня, я получил динамический источник данных в таблице, я могу знать только имена группирующих столбцов. Столбцы в источнике данных могут быть изменены

Karthik_Mahalingam

хорошо, хорошо, какой вывод вам нужен на экране

Karthik_Mahalingam

возьмите отдельный столбец и выполните итерацию с соответствующими ему данными, а затем отобразите его на странице

Richard Deeming

Но ваш "Я хочу сгруппироваться, как показано ниже" пример показывает данные отсортированный, НЕТ сгруппированный.

Нажмите кнопку "улучшить вопрос" и обновите вопрос, чтобы показать нам, что вы на самом деле хотите получить в качестве результата.

1 Ответов

Рейтинг:
1

OriginalGriff

Обычно вы не переупорядочиваете (сортируете) DataTable - и это то, что показывает ваш пример, Grouping это другая и более сложная операция-вместо этого переупорядочить представление этих данных как часть вашего уровня представления или упорядочить данные до того, как они поступят в DataTable, но используя ORDER BY как часть вашего исходного SQL-запроса. Предполагая, что это WinForms, посмотрите на Практическое руководство.Метод Сортировки (DataGridViewColumn, ListSortDirection) (System.Окна.Формы)[^] или исследовать Класс DataView (System. Data)[^] что дает вам логт лучший контроль над презентацией.