fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: UsoMetodoCopyToArray.cs
  9. //
  10. // Propósito: Demostrar el uso de los métodos CopyTo de
  11. // ICollection, y ToArray de ArrayList.
  12. //
  13. ============================================================*/
  14.  
  15. using System;
  16. using System.Collections;
  17.  
  18. namespace Recetas.Cap02
  19. {
  20. internal class UsoMetodoCopyToArray
  21. {
  22. const double CONSTANTE_EULER = 0.577215664901;
  23. const double MEDIA_AUREAL = 1.618033988;
  24. const double PI = Math.PI;
  25. const double E = Math.E;
  26. const double RAIZ_DOS = 1.414213562;
  27.  
  28. public static void Main()
  29. {
  30. // Creación de una variable ArrayList que contiene
  31. // constantes matemáticas.
  32. ArrayList constMatematicas = new ArrayList(5);
  33. constMatematicas.Add(CONSTANTE_EULER);
  34. constMatematicas.Add(MEDIA_AUREAL);
  35. constMatematicas.Add(PI);
  36. constMatematicas.Add(E);
  37. constMatematicas.Add(RAIZ_DOS);
  38.  
  39. // Copiamos el contenido de constMatematicas a un arreglo
  40. // recién creado con la longitud de constMatematicas:
  41. double[] arregloConstantes = new double[constMatematicas.Count];
  42. constMatematicas.CopyTo(arregloConstantes, 0);
  43.  
  44. // Ahora usamos el método ToArray de ArrayList para obtener un
  45. // arreglo con objetos Object:
  46. object[] arregloObjetos = constMatematicas.ToArray();
  47.  
  48. // Ahora especificamos el tipo de destino de arreglo, usando la
  49. // versión sobrecargada de ToArray: public virtual Array ToArray(Type type):
  50. double[] constMatematicas2 = (double[]) constMatematicas.ToArray(typeof(double));
  51.  
  52. // Mostramos los resultados en la salida estándar:
  53. Console.WriteLine("Contenido del arreglo `constMatematicas`:");
  54. foreach(double d in constMatematicas)
  55. {
  56. Console.WriteLine("\t{0}", d);
  57. }
  58.  
  59. Console.WriteLine("\nContenido del arreglo de objectos Object `arregloObjetos`:");
  60. for (int i = 0; i < arregloObjetos.Length; ++i)
  61. {
  62. Console.WriteLine("\t{0}", (double)arregloObjetos[i]);
  63. }
  64.  
  65. Console.WriteLine("\nContenido del arreglo `constMatematicas2`:");
  66. foreach(double d in constMatematicas2)
  67. {
  68. Console.WriteLine("\t{0}", d);
  69. }
  70. }
  71. }
  72. }
Success #stdin #stdout 0.03s 33936KB
stdin
Standard input is empty
stdout
Contenido del arreglo `constMatematicas`:
	0.577215664901
	1.618033988
	3.14159265358979
	2.71828182845905
	1.414213562

Contenido del arreglo de objectos Object `arregloObjetos`:
	0.577215664901
	1.618033988
	3.14159265358979
	2.71828182845905
	1.414213562

Contenido del arreglo `constMatematicas2`:
	0.577215664901
	1.618033988
	3.14159265358979
	2.71828182845905
	1.414213562