在C#中为整数数组添加值

时间:2017-12-01 08:46:24

标签: c#

如何将单个整数添加到整数数组?

 if (valuesHigherThanAverage.Length == 0) valuesHigherThanAverage[valuesHigherThanAverage.Length] = arrayGetal;
 else valuesHigherThanAverage[valuesHigherThanAverage.Length + 1] = arrayGetal;

我有这个代码,我也试过for或foreach循环,但它没有工作。我需要使用INT []并且不能使用List。

4 个答案:

答案 0 :(得分:3)

您无法在数组中添加新项目,您必须创建一个大小为+ 1的新数组,复制所有现有值,然后设置最后一项值。

更简单的方法是使用List<int>,如果空间不足,它会自动调整大小。那么调用Add方法就足够了。

这里有一个数组大小调整算法的示例(Array.Resize可以自动执行此操作,但这只是为了向您展示它应该如何工作):

int[] oldItems = new int[] { 1, 2, 3 };

int[] newItems = new int[oldItems.Length * 2];

for (int i = 0; i < oldItems.Length; i++)
{
    newItems[i] = oldItems[i];
}

newItems[oldItems.Length + 1] = 4;

答案 1 :(得分:0)

您无法更改valuesHigherThanAverage.Length + 1等数组的大小。它有固定的大小。你正越过数组的上限。

答案 2 :(得分:0)

在添加新元素时,数组不能扩展。您需要调用Array.Resize(Of T)来增加大小,但这样效率会非常低。

更符合您要执行的操作的数据类型是List<T>

答案 3 :(得分:0)

您可以使用旧数组的长度+ 1创建一个新数组。

public static int[] AddIntToArray(int[] sourceArray, int addValue)
{
    int[] newArray = new int[sourceArray.Length + 1];
    Array.Copy(sourceArray, newArray, sourceArray.Length);
    newArray[newArray.Length] = addValue;
    return newArray;
}