我正在将一个Java程序移植到C#。
在Java中获取LinkedList<T>
的大小:
int size = list.size();
但是,我在C#中找不到类似的方法。我知道链表的重点不是要知道它的大小,但由于我将它用于缓冲区,所以在列表内部有一个计数器来返回它的大小是个好主意。
答案 0 :(得分:11)
您想使用Count
属性。
此外,LinkedList
实现IEnumerable
,因此该界面的所有方法也都可用,包括Count()
。
答案 1 :(得分:2)
答案 2 :(得分:2)
在Java的 size 的C#等价物中,数组中的长度和实现 ICollection 接口的对象中的 Count 。数组也包含 Count ,但它是明确实现的,需要转换为 ICollection 。还有 IEnumerable 接口,它由允许迭代其元素的所有对象实现。 IEnumerable 包含名为 Count()的扩展方法。请注意,它是一种方法,而不是属性。一些真实的集合还公开了 Capacity 属性,该属性指示为元素分配了多少内存。 容量总是比 Count 更重要。如果您的列表很大,则可以使用 IEnumerable 中的 LongCount()方法。请注意, IEnumerable 中的 Count()方法也允许计算满足给定条件的元素。这可能很有用。
样品:
LinkedList<string> linkedList = new LinkedList<string>();
int32 size3 = linkedList.Count; // From ICollection
int32 size2 = linkedList.Count(); // From IEnumerable
int64 bigSize = linkedList.LongCount(); // From IEnumerable
int32 size4 = linkedList.Count(s => s == "a"); // Count only strings equals "a"
有关进一步阅读,请参阅:System.Collections Namespaces,其中包含有关常见.NET集合的所有信息。