将Linq查询保留/传递给变量OOP

时间:2011-11-22 03:42:10

标签: c# asp.net linq

是否可以将类似的查询保存/传递给OOP类中的变量,例如:

private somedatatype linqquery 

据我所知,声明var类型的变量可以在本地范围内完成

那么如何实现呢?

2 个答案:

答案 0 :(得分:4)

如果通过“LINQ query”表示针对查询提供程序(如LINQ to SQL或实体框架)的查询,并且您计划稍后使用该查询提供其他操作(添加其他查询条件或更改结果集,例如),那么你应该使用IQueryable<QueryReturnType>。否则,请使用IEnumerable<QueryReturnType>作为您的数据类型。

答案 1 :(得分:2)

只要它仍然是IEnumerable并且您不使用投影方法,它仍然是一个linq查询。例如:

void FirstMethod()
{
    var myQuery = from XType x in y select x.Stuff;
    SecondMethod(myQuery);
}

void SecondMethod(IEnumerable<XType> yourVariable)
{
    // Will run the query on the next line.
    foreach(XType x in yourVariable)
    {
        Console.WriteLine(x.ToString());
    }
}