2013-12-09 83 views
2

我有如下语句=动态LINQ的select语句

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 items)

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

沿东西线=

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

谢谢!

+0

什么类型是columnList? – damienc88

+0

这是一个字符串数组 – RenleyRenfield

回答

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

谢谢!这是我需要的确切答案,欢呼! – RenleyRenfield

0

如果columnList可以转换或转换成一个列表然后还有的ForEach方法都可以使用。