假设我有一个完全空的数组
int num = 1;
int[] arr = new int[0];
我只想将变量 num 添加到下一个可能位置的arrat中,就像C#中列表的.Add函数一样。我将如何做到这一点,而不必指定放置的位置,只需指定放置的内容。我不想使用任何列表,基本上就是 .Add 函数如何用于列表,但对于数组
我尝试仅使用 .Add 函数,但这不起作用。这是我的完整代码:
public class Program
{
public static int[] MultiplyByLength(int[] arr)
{
int[] finallist = new int[0];
int curnum = 0;
foreach(int item in arr)
{
curnum = item * arr.Length;
finallist.Add(curnum);
}
return(finallist);
}
}
但是,很明显,它不起作用。我如何使 Finallist.Add(curnum) 行起作用?
我如何使 Finallist.Add(curnum) 行起作用?
不能,C# 中的数组具有固定大小,创建后无法更改:
维数和每个维的长度在创建数组实例时就确定了。这些值在实例的生命周期内无法更改。
因此
Add
函数在数组的情况下没有意义。
但你实际上并不需要它,只需创建一个所需大小的数组并使用
for
循环:
static int[] MultiplyByLength(int[] arr)
{
int[] finallist = new int[arr.Length];
for (var index = 0; index < arr.Length; index++)
{
var item = arr[index];
var curnum = item * arr.Length;
finallist[index] = curnum;
}
return finallist;
}
附注
Array.Resize
,但它实际上做了以下事情:
该方法分配一个指定大小的新数组,将旧数组中的元素复制到新数组,然后用新数组替换旧数组。数组必须是一维数组。