【问题标题】:Get number of columns and column names from LinQ result set从 LinQ 结果集中获取列数和列名
【发布时间】:2011-07-25 02:27:29
【问题描述】:

我正在创建一个网格视图用户控件,我想知道如何从 LinQ 结果集中获取列数和列名。这将用于创建动态网格视图。

我这里有一个类:

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

在我的网格视图中,它具有接收结果集的这个属性。

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

有什么办法吗?

【问题讨论】:

    标签: linq-to-sql ienumerator


    【解决方案1】:

    这样的事情怎么样:

    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();
    

    这是未经测试的,我什至不知道它是否可以编译(我现在手头没有编译器,抱歉)。

    【讨论】:

    • 您好!第一个代码只是要传递的结果集的示例。因此,例如,我不知道要传递的查询是什么。
    • @Musikero:你读过代码吗?这是完全通用的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多