C# List。添加函数,但用于数组而不是列表[重复]

问题描述 投票:0回答:1

假设我有一个完全空的数组

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) 行起作用?

c# arrays list addition
1个回答
1
投票

我如何使 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
,但它实际上做了以下事情:

该方法分配一个指定大小的新数组,将旧数组中的元素复制到新数组,然后用新数组替换旧数组。数组必须是一维数组。

© www.soinside.com 2019 - 2024. All rights reserved.