gpt4 book ai didi

c# - 为什么 IList<> 的功能比 List<> 少?

转载 作者:可可西里 更新时间:2023-11-01 08:51:06 25 4
gpt4 key购买 nike

要使用ConvertAll()这么棒的函数,我必须把IList转换成List,很痛苦。

最佳答案

请注意 List<>IList<> 的实现具有实际存储,即它在后台保存一个数组。一般来说,一个 IList<>可以是其他东西的代理。在 db4o 和 linq to sql 中,您的 IList<>可以“指向查询”,即访问列表将触发数据库操作。

这样,您可以执行 myList.Skip(600).Take(20);执行分页,只有在这一步才会执行实际的查询。 List<>包含一百万个条目将是巨大的,而可能有 IList<>有一个巨大的Count ,但不要占用大量内存 - 只要您不访问这些元素。

ConvertAll将需要实例化每个对象,因此这是一项代价高昂的操作。因此,最好使操作明确并强制您检索接口(interface)的特定实现。显然,转换无论如何都需要实例化所有对象,因此懒惰地进行转换没有任何好处。

关于c# - 为什么 IList<> 的功能比 List<> 少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438598/

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