动态Linq选择语句

时间:2013-12-09 22:38:52

标签: c# .net linq select dynamic

我有这样的声明=

var result =
    from c in displayedUsers
    select
    new string[]
    {
        c.GetType().GetProperty(columnList[0]).GetValue(c, null).ToString(),
        c.GetType().GetProperty(columnList[1]).GetValue(c, null).ToString(),
        c.GetType().GetProperty(columnList[2]).GetValue(c, null).ToString(),
        c.GetType().GetProperty(columnList[3]).GetValue(c, null).ToString()
    };

我想知道的是,是否可以不必具有静态列表长度(在这种情况下,您可以看到只有4个项目)

如果'columnList'数组中有N个列,我该怎么做?

=

的内容
var result =
    from c in displayedUsers
    select
    new string[]
    {
        foreach item in columnList GetValue
        ...
    };

谢谢!

2 个答案:

答案 0 :(得分:2)

这样的事情应该有效:

var columnList = new []{"cola", "colb"};
var result = from c in displayUsers
             select
             (
                 (
                     from col in Columnlist
                     select c.GetType().GetProperty(col).GetValue(c, null).ToString()
                 ).ToArray();
             )

答案 1 :(得分:0)

如果可以将columnList强制转换或转换为List,那么可以使用ForEach方法。