Как Профессия поля является единственным изменением поля, и вы хотите, комбинированное значение для этого поля, необходимо следующим
1. Grouping
на основе Profession
2. Select
записей
3. Используйте Aggregate
для объединения Профессия
Кроме того, необходимо определить конкретный тип для представления (ProfessionRecord
в коде ниже)
var results = dataTable.AsEnumerable()
.GroupBy(x=> x.Field<string>("Profession"))
.Select ( grouping =>
new {
Key=grouping.Key,
CombinedProfession = grouping.Aggregate((a,b)=> a + " " + b)
})
.Select (x=> new ProfessionRecord
{
Id = x.Key.Id,
Name = x.Key.Name,
Profesion = x.CombinedProfession,
});
VB.NET От tool
Dim results = dataTable.AsEnumerable().GroupBy(Function(x) x.Field(Of String)("Profession")).[Select](Function(grouping) New With { _
.Key = grouping.Key, _
.CombinedProfession = grouping.Aggregate(Function(a, b) a + " " + b) _
}).[Select](Function(x) New ProfessionRecord() With { _
.Id = x.Key.Id, _
.Name = x.Key.Name, _
.Profesion = x.CombinedProfession _
})
(я не уверен, насколько он оптимизирован, как VB.NET это не мой первый язык)
Вам нужно добавить ссылку на Data Row Extensions для метода Field<T>(string fieldname)
Благодаря @Tilak строки не дублируются, поскольку столбец Профессии будет иметь разные значения даже для тех же строк. Я хочу сделать datatable, поскольку он возвращает все строки, а для строк дубликатов он их объединяет, а для столбца Profession это может сделать их запятыми, как я уже упоминал по запросу. Пожалуйста, направляйте – user576510
ответ обновлен для не дублированного поля Профессия. – Tilak
Прошу прощения, но, как я делаю в vb, не могли бы вы дать код в vb? Я пытаюсь преобразовать его с помощью конвертера, но он говорит об ошибке, которую я не могу понять. пожалуйста – user576510