mmm*_*mmm 3 .net c# ienumerable ilist
我正在使用一个返回a的外部库IEnumerable.在我收到它们之后,我想在最后添加一些模型.只有在使用IList或其他一些集合时才有可能.因此,当我尝试IEnumerable使用该.ToList()方法将其转换为列表时,它返回一个IEnumerable.那不是我的预期?我使用.ToList()正确吗?或者还有什么能解决我的问题?
这是我到目前为止的代码:
IList<Models.Browser.Language> languages = GetLanguages(dateDrom, dateTo).ToList();
IList<Models.Browser.Language> primaryItems = languages.Take(10);
Run Code Online (Sandbox Code Playgroud)
最后一行产生错误说:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Bogus.Models.Browser.Language>' to 'System.Collections.Generic.IList<Bogus.Models.Browser.Language>'. An explicit conversion exists (are you missing a cast?)
提前致谢!
Jon*_*eet 24
值languages是对a的引用List<>,但是你要调用Take(10)它,它不返回列表.
只需移动你的ToList()电话:
IEnumerable<Models.Browser.Language> languages = GetLanguages(dateDrom, dateTo);
IList<Models.Browser.Language> primaryItems = languages.Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
或者只是在一个电话中执行:
var primaryItems = GetLanguages(dateDrom, dateTo).Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
另外,这不太正确:
在我收到它们之后,我想在最后添加一些模型.
另一种方法是使用Concat.例如:
var items = GetLanguages(dateDrom, dateTo).Take(10).Concat(fixedItems);
Run Code Online (Sandbox Code Playgroud)