<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sorumbático &#187; csharp</title>
	<atom:link href="http://www.sorumbatico.info/tag/csharp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sorumbatico.info</link>
	<description>Mazelas, tecnologia, games e futilidades...</description>
	<lastBuildDate>Fri, 21 May 2010 17:14:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Copiando Arrays no C#</title>
		<link>http://www.sorumbatico.info/2009/05/20/copiando-arrays-no-csharp/</link>
		<comments>http://www.sorumbatico.info/2009/05/20/copiando-arrays-no-csharp/#comments</comments>
		<pubDate>Thu, 21 May 2009 02:30:10 +0000</pubDate>
		<dc:creator>falcao</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[csharp]]></category>

		<guid isPermaLink="false">http://www.sorumbatico.info/?p=279</guid>
		<description><![CDATA[Trabalhando em um programa para cálculo de métodos numéricos, deparei-me com um problema interessante. O código tem dois Arrays, vetorInicial e vetorCopiado. O vetorInicial já tinha valores, e eu precisava copiar para o vetorCopiado, que estava sendo criado naquele momento. Naturalmente, fiz o seguinte:


Double [] vetorCopiado = vetorInicial;

Grande foi a minha surpresa ao saber que [...]]]></description>
			<content:encoded><![CDATA[<p>Trabalhando em um programa para cálculo de métodos numéricos, deparei-me com um problema interessante. O código tem dois Arrays, <em>vetorInicial</em> e <em>vetorCopiado</em>. O <em>vetorInicial</em> já tinha valores, e eu precisava copiar para o <em>vetorCopiado</em>, que estava sendo criado naquele momento. Naturalmente, fiz o seguinte:</p>
<pre class="brush: csharp">

Double [] vetorCopiado = vetorInicial;
</pre>
<p>Grande foi a minha surpresa ao saber que ao modificar o <em>vetorInicial</em> depois da cópia também alteraria os valor de <em>vetorCopiado.</em> Depois de algum tempo de pesquisas, encontrei a solução:</p>
<pre class="brush: csharp">

Double [] vetorCopiado = new Double[vetorInicial.GetLenght(0)];

Array.Copy(vetorInicial, vetorCopiado, 0);
</pre>
<p>O método Copy da classe Array copia os valores ao invés da referência, como mostrado no primeiro código. Esse método tem <em>overloads</em> que podem ajudar em casos específicos, então vale a pena conferir.</p>
<p>Ps: Também é possível copiar matrizes (<em> Type[,]</em> ), basta passar como parâmetro de quantidade de itens a ser copiados o número de elementos da matriz (m*n).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sorumbatico.info/2009/05/20/copiando-arrays-no-csharp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
