2011-02-08 54 views
0

我正在使用動態LINQ庫代碼示例來動態返回一些數據。根據用戶輸入,我返回的列數是可變的。我將IQueryable枚舉成IList。我該如何逐步完成一個IList一個字段?

我需要做的是一次一步地通過Ilist一個字段。通過迭代IList的行,我可以一次獲得一行,但是我不能在我的生活中從該集合中拉出一個字段。

例如,在這裏,我要回兩列(硬編碼測試,但在督促這將是可變的取決於哪些字段用戶選擇):

Dim Dynq = dc.dt _ 
        .Where("RUN_ID = """ & runNumber & """ and Upper_Pressure > 95") _ 
        .OrderBy("Upper_Pressure") _ 
        .Select(" new (Run_ID,Process)") 

     Dim something = DirectCast(Activator.CreateInstance(GetType(List(Of)).MakeGenericType(Dynq.ElementType), Dynq), IList) 

現在我可以拉出來領域的在ILIST如果我知道列名的東西,如:

something.Run_ID.ToString 

,但我不知道我正在使用,直到運行時的列和動態插入它在我們設置在運行時無法正常工作的變量。

因此,在總結我有一個ILIST,看起來像這樣

1 | Auto 
2 | Auto 
3 | Manual 
4 | Manual 

,我想辦法返回,然後返回 自動 然後等..

我非常感謝那些比我更瞭解的人的幫助。

回答

0

你的問題是有點混亂,但我想你想你的扁平化回報率設定柱返回特定的列元素,以便再排...

一種方法,你可以使用的是SelectMany操作。

例如(在C#作爲對不起我的大腦正在轉向一個跟蹤!):

// Find flattened list of some explicitly specified property values... 
var flattened = something.SelectMany(e => new [] { e.Run_ID.ToString(), e.Process.ToString() }); 

不知道如果這是你以後有什麼,但它可能是朝着正確方向邁出的一步。

相關問題