Array.copy vs Array.clone

can any one give the Difference between Array.copy and Array.clone  with an example

 

Thanks in Advance

0
Praveen
3/30/2007 9:17:05 AM
asp.net.getting-started 91979 articles. 3 followers. Follow

4 Replies
564 Views

Similar Articles

[PageSpeed] 47

Clone()
just implements the ICloneable interface. It creates new instance of
array holding the same elements, but returns object you have to cast.

ArrayCopy() is static helper method. It copies elements from one array to another. The destination array has to be already created with right dimension. You can use this method instead for loop.

Don't forget to click "Mark as Answer" on the post that helped you.
0
tompy_nation
3/30/2007 10:01:18 AM

Hi Praveen,

... and welcome to our forum ...!

array.copy is copy all data and structure.
and array.clone is copy only structure not data (ie only shadow part)

Array.Copy

public class CopyToArray {

  public static void Main()
     {
     object[] objects1 = {"one", "two", "three"};
     object[] objects2 = {0, 1, 2, 3, 4, 5};
     Console.Write ("objects1 array elements: ");
     foreach(object o in objects1) {
        Console.Write ("{0} ", o);
        }
     Console.Write ("\nobjects2 array elements: ");
     foreach (object o in objects2) {
        Console.Write ("{0} ", o);
        }
     objects1.CopyTo (objects2, 1);
     Console.Write ("\nobjects2 array elements: ");
     foreach (object o in objects2) {
        Console.Write ("{0} ", o);
        }
     Console.WriteLine();
     }
  }


Clone an array with Array.Clone

sing System;

class CloneArray {

  public static void Main() {
     string[] array1 = {"a", "b", "c"};
     string[] array2 = (string[]) array1.Clone();
     DumpArray ("Original array: ", array1);
     DumpArray ("Cloned   array: ", array2);
     }
   
  private static void DumpArray (string title, string[] array)
     {
     Console.Write (title);
     foreach (string s in array) {
        Console.Write ("{0} ", s);
        }
     Console.WriteLine();
     }
  }


Karsten
0
KBrocksi_SEC
3/30/2007 10:29:51 AM

Array.clone copies Data As Well..

0
Praveen
3/30/2007 1:35:54 PM

I felt the need of this posting because I have seen postings (not in this forum but in many others) saying that "CopyTo() makes a deep copy and Clone() makes a shallow copy."  This is absolutely wrong.

Both CopyTo() and Clone() make shallow copy. Clone() method makes a clone of the original array. It returns an exact length array.

On the other hand, CopyTo() copies the elements from the original array to the destination array starting at the specified destination array index. Note that, this adds elements to an already existing array.

The following code will contradict the postings saying that CopyTo() makes a deep copy:

public class Test
{
    public string s;
}

// Write Main() method and within it call test()

private void test()
{
    Test[] array = new Test[1];
    array[0] = new Test();
    array[0].s = "ORIGINAL";

    Test[] copy = new Test[1];
    array.CopyTo(copy, 0);

    // Next line displays "ORIGINAL"
    MessageBox.Show("array[0].s = " + array[0].s);
    copy[0].s = "CHANGED";

    // Next line displays "CHANGED", showing that
    // changing the copy also changes the original.
    MessageBox.Show("array[0].s = " + array[0].s);
}

Let me explain it a bit. If the elements of the array are of reference types, then the copy (both for Clone() and CopyTo()) will be made upto the first (top) level. But the lower level doesn't get copied. If we need copy of lower level also, we have to do it explicitly. That's why after Cloning or Copying of reference type elements, each element in the Cloned or Copied array refers to the same memory location as referred by the corresponding element in the original array. This clearly indicates that no separate instance is created for lower level. And if it were so then changing the value of any element in the Copied or Cloned array would not have effect in the corresponding element of the original array.

I think that my explanation is exhaustive but I found no other way to make it understandable. Hope this will help everyone.

Asit Pal (asitbaranpal@hotmail.com)

 

 

 

 

0
dotnetasit
6/13/2008 3:30:23 PM
Reply:

Similar Artilces:

Confusion on @array vs $array[] vs $array
--=_FCA3CF00.8EEF86D1 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello: I have been fairly confused on the intermixing of array naming standards. If I understand correctly, the @array syntaxt is used to refer to the whole array, while $array[n] is refered to specific elements. In my thinking, it would have been less confusing to use @array[n] to address specific elements, but Perl complaines bitterly when warnings &/or strict is enabled. Is the rational for the "$"array[] character for identifying ...

Arrays, Arrays, Arrays
I mainly come from a JScript classic ASP background and I'm liking both C#.net and JScript.net. Now I have to say... "What's happened to arrays?" They used to be so flexible and easy to use. Here are my quick questions... Am I allowed to create an array with a non specified length so that I can add to it? If not then how can I modify an array's length? Can I create an array with a named index eg myArray["apple"] = "tasty"; or is the hash table the equivalent for this now? The classic array methods and properties like pop(), push(), length etc... are ...

How to unshift to an array in an array of arrays?
How to unshift to an array in an array of arrays? > -----Original Message----- > From: Angerstein [mailto:ang@nmc-m.dtag.de] > Sent: Wednesday, August 28, 2002 6:12 AM > To: beginners@perl.org > Subject: How to unshift to an array in an array of arrays? > > > How to unshift to an array in an array of arrays? $ perl -d -e 1 ..... DB<1> @aoa = ([qw(foo bar baz)]) << create array of arrays DB<2> x @aoa 0 ARRAY(0x80f82dc) 0 'foo' 1 'bar' 2 'baz' DB<3> unshift @{$aoa[0]}, 'qu...

referring to an array in an array of arrays
How can I get at an array in an array of arrays? I'm creating the arrays using: $fComments[$i++] = [ @comments ]; Now I want to get back what I put in: print "$fComments[0]\n"; but this prints ARRAY(0x107671f0). How do I follow that pointer? (I really think we need a pre-beginners list... =) TIA. - B You can try something like this: print "@{$fComments[0]}\n"; Which will attempt to dereference the array at $fComments[0]. -----Original Message----- From: Bryan R Harris [mailto:Bryan_R_Harris@raytheon.com] Sent: Tue...

Concatenating arrays from arrays of arrays
Hello - I am trying to accumulate items in a flat list (array) by concatenating on to it the scalars contained in arrays which in turn are contained in arrays. The data is to be read in from a file rather than existing as literals in my code. Everything I try either crashes the computer or gives me an array of arrays instead of a flat list. I have been programming in Unicon which has a concatenate operator, but Perl makes very heavy weather of nested list management. Should I switch to Lisp, or is there a way of doing what I want to do in Perl? Regards _John Sampson_ On...

array of arrays
Hi. =20 Im using a multidimensional array in the following way: $array[$i][$j][$k] =3D [ @list ]; where, @list is a 2-D array ie. = $list[][]. How do I access the individual elements of the array @list once Ive put it = into the array @array? Thanks. -ty On Thu, Oct 18, 2001 at 02:28:41PM -0600, Tyler Cruickshank wrote: > $array[$i][$j][$k] = [ @list ]; where, @list is a 2-D array ie. $list[][]. > > How do I access the individual elements of the array @list once Ive put it > into the array @array? $array[$i][$j][$k][$l][$m] eq $list[$l][$m] Howev...

Array of Arrays
Hi, I am looking for a way to create an array of arrays which needs to be passed to Oracle database to minimize the round trips to hte server. I was successful in sending simple arrays so far but no idea on how to create array of arrays in PB. I have used structures to simulate this but looks like I can't send the PB structure to Oracle. Anyone has any suggestions? Thanks, Anil PB 11 or 12 I believe will have this native. <Anil> wrote in message news:422789a4.721c.1681692777@sybase.com... > Hi, > > I am looking for a way to create an array of ar...

Array of arrays
Hi I'm trying to return from a web service a array of arrays, one of the arrays is a array of objects, which I tested separately and it's working fine, and another array of integer and another of strings. When I run the web service I got this:You must implement a default accessor on System.Array because it inherits from ICollectionDefault accessor what that means? Thank you very much.  As Heinlein said "specialization is for insects" explore beyond the universe. Could you pls post the relevant code ? hi rushan thank you for the reply the code is here:  ...

Array of Arrays
Hi, I am looking for a way to create an array of arrays which needs to be passed to Oracle database to minimize the round trips to hte server. I was successful in sending simple arrays so far but no idea on how to create array of arrays in PB. I have used structures to simulate this but looks like I can't send the structure to Oracle. Anyone has any suggestions? Thanks, Anil Please don't cross-post. On 3 Mar 2005 14:02:47 -0800, Anil wrote: >Hi, > >I am looking for a way to create an array of arrays which >needs to be passed to Oracle database t...

Array of Array.
How is possible to declare a DYNAMIC array of array ? I need something like a dynamic hash table whose pages grow up dynamically too (each one can have different number of elements). In other words, a matrix that can be dynamic in both dimension. example: [1,2,3...] [3,4..] [5] [6,7,8,9...] [.] .. .. .. Have you considered using a DataStore? -- <hopethishelps/> Roy Kiesler [TeamSybase] SDN CodeXchange -- http://codexchange.sybase.com "Marco Meoni - News" <mmeoni@usl4.toscana.it> wrote in message news:401ba036$1@forums-2-dub... > How ...

array of arrays
Hi, I have a simple question: how do I access an array in an array? @array = (@array1, array2); ### unless this is wrong... the idea behind it is, that I have a long list, and want to put all 25 entries in a seperate array in that big array. later on I want to be able to read one specific array at a certain position... -- cheers alex mailto:Keex@gmx.de you need to learn about references. read the: perldoc perllol here is the jist though. @all = (\@array1, \@array2 ... ); # ... so on to access first array and first element...

[@array] and \@array
Given the case, my @array = (1,2,3,4); my $var1 = [@array]; my $var2 = \@array; What's the difference between $var1 and $var2? Are they all refered to @array? Thanks guys. On 3/22/07, Jm lists <practicalperl@gmail.com> wrote: > Given the case, > > my @array = (1,2,3,4); > my $var1 = [@array]; > my $var2 = \@array; > > What's the difference between $var1 and $var2? > Are they all refered to @array? > Thanks guys. $var2 is a reference to @array. $var1 is a reference to new array. Observe #!/usr/bin/perl use strict; use war...

An array of arrays
Could anybody help me out here? Here's the message I just got from a guy I know: ----------- I was wondering if you know how to create and access an array of arrays in Perl. Basically I'm parsing an exported text file containing e-mails and I think I want to move some fields into arrays until I'm ready to do my report. Here basically is what I'm looking at doing: ^ | | Array 1 (messages) | | v <------ Array 2 -------> (message fields:FROM, TO, CC, etc, sensitivity, etc) I want to be able to search through the first array to count how many messag...

extracting elements from arrays of arrays of arrays ;-)
Hiya All, I hope you'll forgive this oo perl rookie for asking a routine question. I'm not new to perl, but the bioperl module I'm working on is giving me a headache! ;-) Let's say I have this: my @array = qw(12 56 41 23); my $array_ref = \@array; # where $var1, $var2, and $var3 are other array references. my $ref = [$var1, $var2, $array_ref, $var3 ]; my @object = (); push @object, $ref; QUESTION: How do I obtain the array $array_ref refers to in this situtation? Let's say I want to give @new the values in @array. Thank many thanks for you...

Web resources about - Array.copy vs Array.clone - asp.net.getting-started

Array - Wikipedia, the free encyclopedia
Text is available under the Creative Commons Attribution-ShareAlike License ;additional terms may apply. By using this site, you agree to the ...

Obama announces array of gun control measures - The Boston Globe Obama announces array of gun control ...
... shootings, the president insisted it was still possible to uphold the Second Amendment. WASHINGTON — President Barack Obama unveiled an array ...

New books for animal lovers deliver array of adventures, information
Who's on the bookshelves this month? Dogs, wolves, birds and cats. And butterflies. Beautiful butterflies. Here are some of the new animal-related ...

London Array Sets Mammoth New Offshore Wind Monthly Generation Record
The London Array offshore wind farm has set a mammoth new offshore wind record for the amount of electricity generated in a month. Currently ...

Rarely Seen ‘Ashes And Embers’ Getting Restoration & Distribution From Ava DuVernay‘s Array Releasing ...
Ava DuVernay 's Array Releasing has acquired director Haile Gerima ’s rarely-seen classic Ashes And Embers and will give it full restoration, ...

Violin All-Flash Arrays Aimed at High-end, Starter Markets
Take your pick: 140TB of raw flash in three-rack units, with 1.1 million IOPS, or a not-quite-as-fast starter array for under $100,000.

Sorting through wireless music’s dizzying array of options
The good news: Having clear-sounding audio all over your house no longer requires a second mortgage.

NetApp To Shell Out $870 Million For All-Flash Array Startup SolidFire
NetApp announced the acquisition of all-flash array maker SolidFire for $870 million at the end of what has been a relatively slow year for the ...

Sheldon Silver, Longtime Titan of New York Politics, Guilty On Array of Corruption Charges
Sheldon Silver, who has been speaker of the New York State Assembly for 20 years, was found guilty today in federal court of seven corruption ...

Planet X? Probably not, but ALMA telescope array’s readings stir up debate
An array of radio telescopes in Chile has picked up weird readings that appear to be coming from far-out objects – and that’s sparked a debate ...

Resources last updated: 1/18/2016 3:13:46 AM