我想做这样的事情:
var myQuery;
if (someParam > 0)
{
myQuery = from x in myTable where x.myValue > someParam select x;
}
else {
myQuery = from x in myTable select x;
}
问题是我不能这样做,因为您显然不能在不先声明隐式变量的情况下定义它,也不能在声明隐式变量后重新声明它。
假设我不知道数据的返回类型(隐式类型变量的整个点),那么合适的方法是什么?
编辑:
如果您的类型定义明确,那么下面的第一个答案效果很好,但是这样的事情呢?
var myQuery;
if (includeSomething == true)
{
myQuery = from x in myTable select new { f1 = x.field1, f2 = x.field2 };
}
else {
myQuery = from x in myTable select new { f1 = x.field1, f2 = x.field2, x3 = x.field3 };
}