Получить количество столбцов и имена столбцов из набора результатов LinQ - PullRequest
1 голос
/ 25 июля 2011

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

У меня есть один класс с таким именем:

var myPerson = from persons in myLinQ.SamplePersons
               select persons;

И в моем виде сетки это свойство имеет свойство, которое получает результат.set.

public IEnumerable<Object> SourceLinQ { get; set; }

Есть ли способ сделать это?

1 Ответ

2 голосов
/ 25 июля 2011

Как насчет этого:

var resultType =
    query.GetType() 
         .GetInterfaces()
         .Where(x => x.IsGenericType &&
                     x.GetGenericTypeDefinition() == 
                         typeof(IEnumerable<>)
         )
         .Single()
         .GetGenericArguments()
         .Single();

Тогда:

var columns = resultType.GetProperties();
int numberOfColumns = columns.Length;
string[] columnNames = columns.Select(column => column.Name)
                              .ToArray();

Это не проверено, и я даже не знаю, компилируется ли он (у меня сейчас нет под рукой компилятора, извините).

...