获取通用数组中的元素数

时间:2019-10-30 20:18:19

标签: c#

对于学校项目,我需要返回通用数组(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;
    } 
}

1 个答案:

答案 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.Length100

您可以使用如下通用列表:

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.Count3

列表的容量为100:这意味着您可以添加项目而无需调整内部数组的大小。