如何在Linq中使用AsAsyncEnumerable?

x4shl7ld  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(185)

我有这个方法:

public async Task<List<string>> FindUsedComments(List<string> commentIds)
    {
        if (!commentIds.Any())
            return new List<string>();

        var usedCommentIds = GetNoTraking.Select(x => x.OrginalCommentId).AsEnumerable().Intersect(commentIds).ToList();

        return usedCommentIds;
    }

它工作正常!但如果我改变AsEnumerableAsAsyncEnumerable它的显示我这个错误:

'IAsyncEnumerable<string>' does not contain a definition for 'Intersect' and the best extension method overload 'ParallelEnumerable.Intersect<string>(ParallelQuery<string>, IEnumerable<string>)' requires a receiver of type 'System.Linq.ParallelQuery<string>'

如何在我方法中使用AsAsyncEnumerable代替AsEnumerable

fykwrbwg

fykwrbwg1#

你应该安装NuGet包System.Linq.Async,它为你提供了异步LINQ方法。你需要像往常一样使用using System.Linq;
使用方法:

IAsyncEnumerable<int> a = getEnumerableA(); // however you get this
IAsyncEnumerable<int> b = getEnumerableB(); // however you get this

IAsyncEnumerable<int> c = a.Intersect(b);

相关问题