我怎样才能收集一个集合

Sam*_*tar 4 c# collections

这段代码:

IList<string> quids;
quids = db.Database.SqlQuery<string>("dbo.getById @Id",
                new SqlParameter { ParameterName = "Id", Value = 1 });
Run Code Online (Sandbox Code Playgroud)

生成以下错误消息:

无法将类型'System.Data.Entity.Infrastructure.DbRawSqlQuery'隐式转换为'System.Collections.Generic.IList'.

存在显式转换(您是否错过了演员?)

有人可以向我解释我如何投射集合吗?

kri*_*mog 8

IList<string> result = oldCollection.ToList();
Run Code Online (Sandbox Code Playgroud)

DbRawSqlQuery<T>不实现IList<T>接口(因此,不能直接转换).但它实现了IEnumerable<T>,所以你可以打电话.ToList().

  • 值得注意的是,"quids"不仅仅是一个集合.调用`ToList`甚至枚举它将导致数据库调用.这不是将一个集合转换为另一个集合的问题 (2认同)