2011-02-08 40 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() }); 

不知道如果这是你以后有什么,但它可能是朝着正确方向迈出的一步。

相关问题