ArrayList
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace EjemploArrayList
{
class Program
{
static void Main(string[] args)
{
ArrayList miArrayList = new ArrayList();
miArrayList.Add("Hola ");
miArrayList.Add("buenos ");
miArrayList.Add("días.");
foreach (string cadena in miArrayList)
Console.WriteLine(cadena);
// Accedemos a una posición
Console.WriteLine("La segunda cadena es: {0}", miArrayList[1]);
// Insertamos en la segunda posicion
miArrayList.Insert(1, "¿Cómo estás?, ");
// Mostramos de otra forma lo que contiene
for (int i=0; i<miArrayList.Count; i++)
Console.WriteLine(miArrayList[i]);
// Buscamos un elemento
Console.WriteLine("La palabra \"días.\" está en la posición {0}",
miArrayList.IndexOf("días."));
// Ordenamos
miArrayList.Sort();
// Mostramos lo que contiene
Console.WriteLine("Contenido tras ordenar");
foreach (string frase in miArrayList)
Console.WriteLine(frase);
// Buscamos con búsqueda binaria
Console.WriteLine("Ahora \"días.\" está en la posición {0}",
miArrayList.BinarySearch("días."));
// Invertimos la lista
miArrayList.Reverse();
// Borramos el segundo dato y la palabra "días."
miArrayList.RemoveAt(1);
miArrayList.Remove("días.");
// Mostramos nuevamente lo que contiene
Console.WriteLine("Contenido dar la vuelta y tras eliminar dos:");
foreach (string frase in miArrayList)
Console.WriteLine(frase);
// Ordenamos y vemos dónde iría un nuevo dato
miArrayList.Sort();
Console.WriteLine("La frase \"Hola \"...");
int posicion = miArrayList.BinarySearch("Hola ");
if (posicion >= 0)
Console.WriteLine("Está en la posición {0}", posicion);
else
Console.WriteLine("No está. El dato inmediatamente mayor es el {0}: {1}",
~posicion, miArrayList[~posicion]);
Console.ReadKey();
}
}
}
El símbolo ~. BinarySearch devuelve un número negativo cuando el texto que buscamos no aparece, pero ese número negativo tiene un significado: es el «valor complementario» de la posición del dato inmediatamente mayor (es decir, el dato cambiando los bits 0 por 1 y viceversa).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace EjemploArrayList
{
class Program
{
static void Main(string[] args)
{
ArrayList miArrayList = new ArrayList();
miArrayList.Add("Primero ");
miArrayList.Add("Segundo ");
miArrayList.Add("Tercero ");
miArrayList.Add("Cuarto ");
miArrayList.Add("Quinto ");
foreach (string cadena in miArrayList)
Console.Write(cadena);
Console.WriteLine();
// Accedemos a una posición
Console.WriteLine("La segunda cadena es: {0}", miArrayList[1]);
// Insertamos en la segunda posicion
miArrayList.Insert(1, "Después de Primero ");
miArrayList.Insert(0, "Al principio ");
// Mostramos de otra forma lo que contiene
for (int i = 0; i < miArrayList.Count; i++)
Console.WriteLine(miArrayList[i]);
// Buscamos un elemento
Console.WriteLine("La palabra \"Tercero \" está en la posición {0}",
miArrayList.IndexOf("Tercero "));
// Ordenamos
miArrayList.Sort();
// Mostramos lo que contiene
Console.WriteLine("Contenido tras ordenar");
foreach (string frase in miArrayList)
Console.WriteLine(frase);
// Buscamos con búsqueda binaria
Console.WriteLine("Ahora \"Cuarto \" está en la posición {0}",
miArrayList.BinarySearch("Cuarto "));
// Invertimos la lista
miArrayList.Reverse();
// Borramos el segundo dato y la palabra "Quinto "
miArrayList.RemoveAt(1);
miArrayList.Remove("Quinto ");
// Mostramos nuevamente lo que contiene
Console.WriteLine("Contenido dar la vuelta y tras eliminar dos:");
foreach (string frase in miArrayList)
Console.WriteLine(frase);
// Ordenamos y vemos dónde iría un nuevo dato
miArrayList.Sort();
Console.WriteLine("La frase \"Primero \"...");
int posicion = miArrayList.BinarySearch("Primero ");
if (posicion >= 0)
Console.WriteLine("Está en la posición {0}", posicion);
else
Console.WriteLine("No está. El dato inmediatamente mayor es el {0}: {1}",
~posicion, miArrayList[~posicion]);
Console.WriteLine("La frase \"Sexto \"...");
posicion = miArrayList.BinarySearch("Sexto ");
if (posicion >= 0)
Console.WriteLine("Está en la posición {0}", posicion);
else
Console.WriteLine("No está. El dato inmediatamente mayor es el {0}: {1}",
~posicion, miArrayList[~posicion]);
Console.ReadKey();
}
}
}