2013-12-09 81 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方法都可以使用。