对于学校项目,我需要返回通用数组(T[]
数组)中的元素数。
在构造函数中,我像这样设置数组:
T[] arr = new T[100];
arr.add(3);
arr.add(2);
arr.add(1);
要查找我尝试过array.length
的数组的大小,但是返回的容量为100,但应为3。
如何找到正确的答案3?
编辑:
add
函数是一个简单的函数,它检查大小是否小于default_capacity
并将数据添加到数组。大小变量至关重要,该函数期望数组中元素的总数。
public void Add(T x)
{
if(size < DEFAULT_CAPACITY)
{
array[size] = x;
}
}
答案 0 :(得分:1)
此处数组的容量为100:有100个项目。
一个数组没有容量,它有Length
个项目...
例如,一个100个整数的数组将100个框初始化为0。
而且数组没有add
方法...
您可以改用List<T>
,并拥有Count
属性和Add
方法。
List<>
比数组更平滑和有用,但优化程度稍差。
如果要使用这样的初始化数组,则可以在有问题的注释中使用@ itsme86建议。
但是,您的代码中的add
方法是什么?
您可以这样使用预期的数组:
public class GenericArray<T>
{
public readonly T[] arr = new T[100];
}
var myArray = new GenericArray<int>();
myArray.arr[0] = 3;
myArray.arr[1] = 2;
myArray.arr[10] = 1;
您仍然有100个项目:myArray.arr.Length
是100
。
您可以使用如下通用列表:
public class GenericList<T>
{
public readonly List<T> list = new List<T>(100);
}
var myList = new GenericList<int>();
myList.list.Add(3);
myList.list.Add(2);
myList.list.Add(1);
这里有3个项目:myList.list.Count
是3
。
列表的容量为100:这意味着您可以添加项目而无需调整内部数组的大小。