谓词返回所有项目

Jas*_*Jay 3 c#

我不熟悉传递函数的概念.我如何调用GetItemsAsync()并在没有任何条件的情况下返回所有内容?

var items = await Respository.GetItemsAsync(d => !d.Completed);

    public async Task<IEnumerable<T>> GetItemsAsync(Expression<Func<T, bool>> predicate)
    {
        IDocumentQuery<T> query = client.CreateDocumentQuery<T>(
            UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId),
            new FeedOptions { MaxItemCount = -1 })
            .Where(predicate)
            .AsDocumentQuery();

        List<T> results = new List<T>();
        while (query.HasMoreResults)
        {
            results.AddRange(await query.ExecuteNextAsync<T>());
        }

        return results;
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

只需传入一个始终为真的谓词,例如x => true.

这依赖于您正在使用的LINQ提供程序,这意味着您需要一切,当然.另一个替代方案是让这个方法的另一个重载根本不使用Where调用.