1

假设我有 2 个具有不同值的字符串数组:
string[] sArray1 = new string[3]{"a","b","c"};
string[] sArray2 = new string[3]{"e","f","g"}

我想让值sArray1等于sArray2(我知道我可以这样写):sArray1[0] = sArray2[0]; sArray1[1]= sArray2[1]; sArray1[2]=sArray2[2];

对于 3 个值,这很容易,但如果我在一个数组中有 100 个值怎么办?有没有其他方法可以使数组值相等?

ps对不起我的英语不好:(

4

3 回答 3

7

像这样的东西(有一点错误检查):

        if (sArray2.Length == sArray1.Length)
        {
            sArray2.CopyTo(sArray1, 0);    
        }

问候

于 2012-07-30T23:07:23.033 回答
2

我假设您想保留对 sArray1 中原始数组的引用?然后这样做: -

Array.Copy(sArray2, sArray1, sArray1.Length);
于 2012-07-30T23:10:52.313 回答
0

如果您希望它们彼此独立运行,则可以使用 .Clone() 从 .NET 5.0 开始

string[] sArray1 = (string[])sArray2.Clone();

在上述情况下,如果您更改一个数组中的值,它不会影响另一个数组 - 这称为“浅拷贝”(也称为 val 拷贝)。如果您希望两个数组中的值相互关联(通常是不可取的),您可以执行如下简单的分配:

string[] sArray1 = sArray2;

在这种情况下,如果您更改任一数组中的值,则另一个数组中的值将更新(也称为 ref 复制)。

于 2021-11-15T06:30:11.097 回答