这样的事情是可能的:
int testvar = 0;
var query = PrimaryDataSource.AsEnumerable().Where(r =>
r.Field<testvar.GetType()>("col") == testvar);
但我不想要这个:
int testvar = 0;
if (testvar is int)
{
var query = PrimaryDataSource.AsEnumerable().Where(r =>
r.Field<int>("col") == testvar);
}
答案 0 :(得分:3)
不要使用Field
来获取价值;把它作为一个对象:
var query = PrimaryDataSource.AsEnumerable().Where(r =>
object.Equals(r["col"], testvar));
使用泛型的全部意义在于,当您知道静态类型时,使用静态类型。既然你没有,那么使用它没有任何好处。