【问题标题】:Use dynamic datatype in LINQ query在 LINQ 查询中使用动态数据类型
【发布时间】:2013-01-28 04:03:32
【问题描述】:

有一个如下有效的 Linq 查询:

from row in myDataTable.AsEnumerable() select row.Field<string>("myDataColumn")

现在尝试使其适用于任何列数据类型(不仅仅是string)。尝试了以下方法:

from row in myDataTable.AsEnumerable() select row.Field<myDataTable.Columns["myDataColumn"].DataType>("myDataColumn")

但它不起作用。

那么有没有办法在这个特定的 Linq 查询中使数据类型动态化?

【问题讨论】:

  • 泛型不是这样工作的。泛型需要在编译时指定类型,因此您可以在编译时使用该类型。如果您不使用或无法使用它,请不要使用泛型。

标签: c# .net linq datatable dataset


【解决方案1】:

Field 属性设计用于在编译时知道类型时获取值。当您不只是使用索引器时:

from row in myDataTable.AsEnumerable() select row["myDataColumn"];

这会将值作为object 返回。

【讨论】:

  • 如果您愿意,也可以使用Field&lt;object&gt;["..."]
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 2012-11-11
  • 1970-01-01
  • 2012-12-13
相关资源
最近更新 更多