我正在尝试获取我的服务器中所有数据库的列表,并最终将它们打印出来(即使用它们的名称作为string)。使用以前版本的c#驱动程序,我可以调用Server.GetDatabases(),但它已被ListDatabasesAsync()所取代。
返回值是一个IAsyncCursor<>,我不知道如何处理它。如何使用这样的游标遍历数据库列表(或任何内容)?
发布于 2020-06-21 07:24:32
我个人喜欢将光标转换为C# 8 IAsyncEnumerable,这样您就可以获得使用可枚举项(主要是LINQ)的所有好处。
使用@i3arnon的"long answer“我创建了这个扩展方法:
public static async IAsyncEnumerable<T> ToAsyncEnumerable<T>(this IAsyncCursor<T> asyncCursor)
{
while (await asyncCursor.MoveNextAsync())
{
foreach (var current in asyncCursor.Current)
{
yield return current;
}
}
}https://stackoverflow.com/questions/29682371
复制相似问题