我经常遇到需要对一组属性执行操作的情况。该操作可以是任何操作,从检查特定属性是否与集合中的任何内容匹配到一次 Action 重复即可。有时,在调用函数时会动态生成该集合,有些是使用简单的LINQ语句构建的,而另一些时候,它是一个硬编码的集合,将始终保持不变。但是始终存在一个常数:该集合仅在一个操作中存在,并且在之前或之后没有用处。

我的问题是,我的应用程序中有很多要点,但我在存储这些集合的方式上似乎非常不一致。其中一些是数组,有些是列表,而现在我发现了几个链接列表。现在,我特别关心的所有操作都不必关心索引,容器大小,订单或任何单个容器类型赋予的任何其他功能。我选择资源效率是因为它比掷硬币更好。我认为,由于配置了数组大小,并且它是一个非常基本的容器,所以这可能是我的最佳选择,但我认为这是一个更好的主意。另外,如果有更好的选择而不是出于资源效率的考虑,而是严格地将其作为这种情况的更好选择,那也将是不错的选择。

最佳答案

有了您的承认,这更多的是关于编码一致性,而不是性能或效率,我认为一般做法是使用List<T>。它的实际后备存储是一个数组,因此您并没有在容器开销上损失太多(如果有什么值得注意的话)。没有更多的资格,我不确定能否提供更多的服务。

当然,如果您真的不在乎问题中列出的内容,只需将变量键入为IEnumerable<T>即可,而在填充实际容器时,您只需要处理它即可;您消费的地方将是完全一致的。

关于c# - 对于仅一次操作而言,哪种C#容器在存在时最节省资源?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2834910/

10-16 11:58