0

我有一个 200 列宽的表,需要返回特定行和列的数据,但直到运行时我才知道该列。我可以通过 LINQ 轻松地将我想要的行放入列表、单个强类型对象或数组中,但我一生都无法弄清楚如何找到我需要的列。

所以例如(在较小的规模上)我的桌子看起来像这样

GrowerKey | day1 | day2 | day3  | day4 |
-----------------------------------------
  3       |  1   |   3  |   2   |   2 |
  4       |  6   |   1  |   9   |   1 |
  5       |  8   |   8  |   2   |   4 |

我可以用像这样简单的东西得到我想要的行

Dim CleanRecord As List(Of Grower_Clean_Schedule) = (From key In eng.Grower_Clean_Schedules
                                                     Where key.Grower_Key = Grower_Key).ToList

然后我如何只返回该行的特定列的值(比如存储在“day2”中的值)当我直到运行时才知道哪一列?

4

1 回答 1

0

像这样的东西(从CleanRecord你在问题中定义的开始):

dim matchingRow = CleanRecord.First()

dim props = matchingRow.GetType().GetProperties( _
                BindingFlags.Instance or BindingFlags.Public))

dim myReturnVal = (from prop in props _
                   where prop.Name = "day2" _
                   select prop.GetValue(matchingRow, Nothing).FirstOrDefault()

return myReturnVal
于 2012-08-21T18:22:07.770 回答