如何将单个整数添加到整数数组?
if (valuesHigherThanAverage.Length == 0) valuesHigherThanAverage[valuesHigherThanAverage.Length] = arrayGetal;
else valuesHigherThanAverage[valuesHigherThanAverage.Length + 1] = arrayGetal;
我有这个代码,我也试过for或foreach循环,但它没有工作。我需要使用INT []并且不能使用List。
答案 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;
}