C# 如何在两个方法之间共享一个LINQ查询?

C# 如何在两个方法之间共享一个LINQ查询?,c#,linq,C#,Linq,有没有办法在两个方法之间共享一个LINQ查询?我有一个相当长的LINQ查询,它从数据库中获取搜索结果,我需要使用这个查询来获取结果(某种列表)——第一个方法——以及获取其计数(int)——第二个方法。我不想在两个单独的方法中复制此查询,并且无法返回包含搜索结果和记录计数的自定义类对象(由此查询返回)。所以我想做的是获得LINQ查询定义(或者类似的东西?),但不需要我可以在其他方法中使用的结果集。也许还有另一个好办法。谢谢你的帮助;) 代码如下所示: public ??? GetSearchRes

有没有办法在两个方法之间共享一个LINQ查询?我有一个相当长的LINQ查询,它从数据库中获取搜索结果,我需要使用这个查询来获取结果(某种列表)——第一个方法——以及获取其计数(int)——第二个方法。我不想在两个单独的方法中复制此查询,并且无法返回包含搜索结果和记录计数的自定义类对象(由此查询返回)。所以我想做的是获得LINQ查询定义(或者类似的东西?),但不需要我可以在其他方法中使用的结果集。也许还有另一个好办法。谢谢你的帮助;)

代码如下所示:

public ??? GetSearchResultsQuery(SearchRequest search_request)
{
    var queryGetSearchResults = ....
    return queryGetSearchResults;
} 

public int GetSearchResultsCount(SearchRequest search_request)
{
    return GetSearchResultsQuery(search_request).Count();
}

public List<SearchResults> GetSearchResults(SearchRequest search_request)
{
return GetSearchResultsQuery(search_request).Skip(search_request.startRowIndex).Take(search_request.maximumRows).ToList(); 
}
public???GetSearchResultsQuery(搜索请求搜索请求)
{
变量queryGetSearchResults=。。。。
返回queryGetSearchResults;
} 
public int getSearchResultCount(搜索请求搜索请求)
{
返回GetSearchResultsQuery(搜索请求).Count();
}
公共列表GetSearchResults(搜索请求搜索请求)
{
返回GetSearchResultsQuery(搜索请求).Skip(搜索请求.startRowIndex).Take(搜索请求.maximumRows).ToList();
}
公共IQueryable GetSearchResultsQuery(搜索请求搜索\u请求)
{
var queryGetSearchResults=context.SearchedForTypes.Where(x=>x==search\u request.x);
…建立您的搜索查询。。。
返回queryGetSearchResults;
} 
公共IQueryable GetSearchResultsQuery(搜索请求搜索\u请求)
{
var queryGetSearchResults=context.SearchedForTypes.Where(x=>x==search\u request.x);
…建立您的搜索查询。。。
返回queryGetSearchResults;
} 

您可能希望在此处返回IQueryable只是一个注释,在大多数情况下,当您将鼠标悬停在Visual Studio上时,Visual Studio会提供关于
var
类型的IntelliSense。您可能希望在此处返回IQueryable只是一个注释,在大多数情况下,当您将鼠标悬停在Visual Studio上时,Visual Studio会提供关于
var
类型的IntelliSense。
public IQueryable<SearchedForType> GetSearchResultsQuery(SearchRequest search_request)
{
    var queryGetSearchResults = context.SearchedForTypes.Where(x => x == search_request.X);
    ... build up your search query ...
    return queryGetSearchResults;
}