2011-06-13 63 views
0

我想動態設置來自LINQ的輸出的列名。像這樣:在LINQ中動態設置列類型

summary Rows.Field<Type>("Name") 

我需要這樣做,因爲我有基於的條件和每列三列做纔能有2種不同的類型,如floatintdouble

有誰有什麼建議如何做到這一點?

+1

不太清楚你的代碼,但你可以使用Select(new {})選項。您也可以使用[LINQPad](http://ow.ly/5gv6D)進行實驗。 – John 2011-06-13 15:27:35

+0

這是什麼意思,「每列有兩種不同的類型,比如......(3種類型)'? – Snowbear 2011-06-13 16:02:01

回答

0

LINQ to SQL處理靜態類型,雖然有一些技巧可以做。除了使用Convert.ToInt32等將適當的類型更改爲您想要投射時所需的值之外,您無法立即更改該字段的類型。

或者,你可以嘗試的價值鑄造到每個從查詢三類:

from c in ctx 
select new 
{ 
    IntVal = c.Value, 
    DoubleVal = Convert.ToDouble(c.Value), 
    . 
    . 
} 

這樣,你適當地有三個投,可以在正確的領域吸。在處理記錄時,甚至可以使用反射包裝來獲得與所需內容相似的內容。我不知道Convert是LINQ支持的,但你應該可以做類似的事情。

HTH。