動的LINQライブラリコードサンプルを使用して、いくつかのデータを動的に返しています。返される列の数は、ユーザー入力によって異なります。IQueryableをIListに列挙しています。
私がする必要があるのは、一度に1つのフィールドでIlistをステップスルーすることです。IListの行を反復処理することで、一度に1つの行を取得できますが、コレクションから1つのフィールドを引き出すことはできません。
たとえば、ここでは2つの列を返します(テスト用にハードコーディングされていますが、製品では、ユーザーが選択したフィールドに応じて可変になります)。
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を返し、次にAutoを返し、次に2などを返す方法が欲しいのですが...
私よりも学んだ人たちの助けをいただければ幸いです。