LINQ:在方法调用中保持“var”状态?

时间:2012-03-02 13:13:39

标签: linq linq-to-sql methods threadpool

好的,所以我使用linq,因此我有一些动态创建的“var”类型对象,如

  

var Order = CustomerDataContext.Order.Where(e => e.OrderPending)

和许多其他人都这样,所以问题是如何在方法调用中维护这个“var”,我正在使用 ThreadPool.QueueUserForWorkItem(ProcessOrder, var)但是此方法接受对象,我无法将参数中的后面强制转换回Order类型。此外,由于它的var甚至不能被声明为静态,所以我可以保持状态,所以我该怎么办?我应该如何维护这个var,或者如果我不能,那么另一种方法是做我正在做的事情?

1 个答案:

答案 0 :(得分:2)

引自here

  

[var]隐式类型的局部变量是强类型的,就像你自己声明了类型一样,但是编译器确定了类型。

您不保留var类型。在您的示例中,Order可能是IQueryable类型。 var只是一个快捷方式,因此您不必指定变量的类型并让编译器执行此操作。所以你可以写完:

IQueryable<Order> Order = CustomerDataContext.Order.Where(e => e.OrderPending)