2016-12-29 8 views
0

У меня есть список, который получает его значения из базы данных, а затем преобразуется в datatable, но прежде чем делать это, я хочу примените groupby в списке и получите все столбцы, а не только ключ и значение. После создания нового списка с использованием groupby datatable не отображает все столбцы, вместо этого он имеет только два столбца, которые указывают емкость и количество.Linq to List: есть ли способ включить все столбцы после применения groupby в списке

var groupedResults = Results.GroupBy(x => x.PROJECT_ID) 
          .Select(y => y.ToList()) 
          .ToList(); 

Результаты список, который содержит около 14 столбцов или ключей в данном случае со всем именем свойства проекта, связанными с проектом, идентификатор и т.д. Когда я использую результаты и преобразовать его в DataTable У меня нет каких-либо проблем, но когда я используйте список groupedResults, как показано выше, и преобразуйте его в datatable, у которого нет всех 14 столбцов, и исключение возникает, поскольку столбец не найден. Есть ли способ выбрать все ключи, как в исходном списке.

enter image description here

Спасибо

+0

вы пробовали с SelectMany? –

+0

@federicoscamuzzi есть способ выбрать все – Agasthya

+0

, вы можете присоединиться к нему снова с результатами, чтобы получить все столбцы –

ответ

0

Вы пробовали что-то вроде W с:

var groupedResults = Results.GroupBy(x => new {x.PROJECT_ID, obj = x}) 
          .Select(y => y.Key.obj.ToList()) 
          .ToList(); 
+0

Я пробовал это, но получаю все строки, как в результатах, не groupby – Agasthya

0

Попробуйте что-то вроде этого

var e = Results.GroupBy(x => x.PROJECT_ID) .Select(y =>new { ProjectId = y.Key, 
Count=y.Count()}) 
.Join(Results,x=>x.ProjectId,y=>y.PROJECT_ID,(x1,y1) => new 
{x1.ProjectId,x1.Count,y1.Col1,y1.Col2 /* Add all columns you need */}) 
         .ToList(); 
+0

Есть ли способ получить все столбцы после groupby без написания имени каждого столбца, причина в том, что у меня слишком много столбцов. – Agasthya

+0

@Agasthya Я не уверен, что это возможно, когда вам нужен сплющенный тип в качестве вывода –

+0

при выборе столбцов, которые вы используете x1 и yi, я думал, что y1 указывает на все столбцы в нем ... есть ли какая-то причина использовать их оба – Agasthya