Vb.net 如何一次通过一个IList字段?
我使用动态LINQ库代码示例动态返回一些数据。根据用户输入,我返回的列数是可变的。我正在将IQueryable枚举到IList中 我需要做的是一次一个字段地遍历Ilist。我可以通过迭代IList的行一次得到一行,但我不能从集合中抽出一个字段 例如,这里我返回两列硬编码的测试,但在prod中,它将根据用户选择的字段而变化:Vb.net 如何一次通过一个IList字段?,vb.net,linq,visual-studio-2008,collections,dynamic-linq,Vb.net,Linq,Visual Studio 2008,Collections,Dynamic Linq,我使用动态LINQ库代码示例动态返回一些数据。根据用户输入,我返回的列数是可变的。我正在将IQueryable枚举到IList中 我需要做的是一次一个字段地遍历Ilist。我可以通过迭代IList的行一次得到一行,但我不能从集合中抽出一个字段 例如,这里我返回两列硬编码的测试,但在prod中,它将根据用户选择的字段而变化: Dim Dynq = dc.dt _ .Where("RUN_ID = """ & runNumber & """ a
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
我想要一种返回的方式
1.
然后再回来
汽车
然后
2.
等等
在这方面,我将非常感谢那些比我更博学的人的帮助。您的问题有点让人困惑,但我认为您希望将返回集展平,以按列然后按行的顺序返回特定列作为元素 您可以使用的一种方法是运算符 例如,在C中表示抱歉,因为我的大脑正在转一圈
// Find flattened list of some explicitly specified property values...
var flattened = something.SelectMany(e => new [] { e.Run_ID.ToString(), e.Process.ToString() });
不确定这是否是你的目标,但这可能是朝着正确方向迈出的一步