Anon1139
Anon1139

Reputation: 55

How to make arrays values equal in C#?

Let's say that I have 2 string arrays with different values:
string[] sArray1 = new string[3]{"a","b","c"};
string[] sArray2 = new string[3]{"e","f","g"}

And I want to make values of sArray1 equal to values of sArray2 (I know I can write it like this) : sArray1[0] = sArray2[0]; sArray1[1]= sArray2[1]; sArray1[2]=sArray2[2];

For 3 values it's easy, but what if I had 100 values in an array? Is there any other way that I can make array values equal?

p.s. sorry for my bad English :(

Upvotes: 1

Views: 4677

Answers (3)

SendETHToThisAddress
SendETHToThisAddress

Reputation: 3744

If you want them to function independently of each other than you can use .Clone() as of .NET 5.0

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

In the above scenario if you change a value in one array it will not affect the other - this is called a "shallow copy" (AKA copy by val). If you want the values in both arrays to be tied to each other (typically not desirable) you can do a simple assignment like this:

string[] sArray1 = sArray2;

In this case if you change a value in either array the value(s) in the other array will update (AKA copy by ref).

Upvotes: 0

Andre Calil
Andre Calil

Reputation: 7692

Something like this (with a little error checking):

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

Regards

Upvotes: 7

SF Lee
SF Lee

Reputation: 1777

I'm assuming you want to keep the reference to the original array in sArray1? Then do this:-

Array.Copy(sArray2, sArray1, sArray1.Length);

Upvotes: 2

Related Questions