尝试编码
Client = new MongoClient($"mongodb://{connectionParameters}");
List<dynamic> names = Client.ListDatabases().ToList()
.Select(x => new { name = x["name"].ToString() })
.OrderBy(x => x.name)
;
但是编译器显示错误
无法隐式转换类型
'System.Linq.IOrderedEnumerable <>'
到
'System.Collections.Generic.List'。存在显式转换(您是否缺少演员表?)
不确定补救措施是什么。
也尝试过
List<string> names = Client.ListDatabases().ToList()
.Select(x => x["name"].ToString())
;
但也有错误
无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.Generic.List'。存在显式转换(您是否缺少演员表?)
答案 0 :(得分:2)
如果您查看OrderBy的文档,则会发现它返回:
IOrderedEnumerable<TSource>
但是您希望它是一个List
,因此您只需要在末尾调用ToList()
List<dynamic> names = Client.ListDatabases().ToList()
.Select(x => new { name = x["name"].ToString() })
.OrderBy(x => x.name)
.ToList();
答案 1 :(得分:1)
为什么不使用客户端的ListDatabaseNames
方法?
var dbNames = client.ListDatabaseNames()
.ToList()
.OrderBy(n => n)
.ToArray();