LINQ查询的结果是什么类型?

时间:2013-10-22 03:53:44

标签: c# linq objectquery

LINQ的例子给出了这个

var query = context.Contacts
    .Where(q => q.FirstName == "Tom");

我想知道什么对象是“查询”?还有可能(建议)将它传递给一个方法(在同一个类中)吗?

1 个答案:

答案 0 :(得分:2)

query对象最有可能是IQueryable<Contact>类型。你当然可以将它传递给一个方法,无论是在同一个类中还是在另一个类中都无关紧要。

但请记住,LINQ确实使用了一种名为“延迟执行”的机制。这意味着查询不会立即枚举,而是在需要时进行枚举。您在查询中放入的所有内容(例如Where - 子句)都会被执行。有关延迟执行的更多信息,请查看MSDN: Query Execution

注意:如果您将鼠标悬停在它上面或Visual Studio中的query关键字,您可以找到var变量的确切类型。