【发布时间】:2012-11-21 01:17:47
【问题描述】:
可能重复:
count vs length vs size in a collection
Array.Length vs Array.Count
我声明了这个数组:
int[] misInts = new Int[someNumber];
/* make some happy operations with the elements in misInts */
所以我可以通过以下方式获得 SomeNumber 的值: misInts.Length 或 misInts.Count()
C# 中的数组继承自 IEnumerable。所以如果我有:
Func<int> misIntsF = Enumerable.Range(0, someNumber).Select(c=> /* make some happy operations that return Integers */);
有人告诉我,如果我创建 misIntsF.Count(),我实际上会执行 Lambda 表达式中的代码,获取结果并计算它们。但是数组 misInts 没有 Lambda 表达式。
misInts.Count() 是否比 misInts.Length 消耗更多内存? misInts.Count() 和 misInts.Length 有什么区别?
【问题讨论】:
-
@Kiyura 您的链接问题涉及术语。这个问题是关于性能的。
-
(Bob Ross) - “对 misInts 中的元素进行一些愉快的操作”
-
你说得对,Rotem,我担心内存消耗和性能,因为这是一个更大的算法的一部分,循环中的循环无处不在。
-
@Rotem,这就是为什么它是评论而不是答案,也是为什么我没有说“重复”的原因,它只是为了指向 OP 可能尚未看到的信息的指针.