gpt4 book ai didi

c# - 创建空的 IAsyncEnumerable

转载 作者:行者123 更新时间:2023-12-03 03:48:53 26 4
gpt4 key购买 nike

我有一个这样写的界面:

public interface IItemRetriever
{
public IAsyncEnumerable<string> GetItemsAsync();
}

我想编写一个不返回任何项目的空实现,如下所示:

public class EmptyItemRetriever : IItemRetriever
{
public IAsyncEnumerable<string> GetItemsAsync()
{
// What do I put here if nothing is to be done?
}
}

如果它是一个普通的 IEnumerable,我会 return Enumerable.Empty<string>(); ,但我没有找到任何 AsyncEnumerable.Empty<string>() .

解决方法

我发现这行得通,但很奇怪:

public async IAsyncEnumerable<string> GetItemsAsync()
{
await Task.CompletedTask;
yield break;
}

任何的想法?

最佳答案

如果您安装 System.Linq.Async 包,你应该可以使用AsyncEnumable.Empty<string>() .这是一个完整的例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

class Program
{
static async Task Main()
{
IAsyncEnumerable<string> empty = AsyncEnumerable.Empty<string>();
var count = await empty.CountAsync();
Console.WriteLine(count); // Prints 0
}
}

关于c# - 创建空的 IAsyncEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59443429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com