Listas
Para acceder a una lista se puede usando un método, o con un indexer igual a las Arrays []
.
using System.Linq;
List<string> myList = new List<string> { "Yes", "No" };
// possibility 1
var firstItem = myList.ElementAt(0);
// possibility 2
var firstItem = myList[0];
List vs ArrayList
Don’t use ArrayList
. Use List<T>
instead. ArrayList
comes from times when C# didn’t have generics and it’s not the same ArrayList
we have in Java.
Don’t do.
ArrayList array = new ArrayList();
array.Add(1);
array.Add("Pony"); // Later error at runtime if you try to operate with numbers.
How to
List<int> list = new List<int>();
list.Add(1);
list.Add("Pony"); // Compilation error.
Stack
Colección LIFO (Last in, First Out). Pensar en una pila de platos. El último plato que ponemos es el primero en salir.
Stack pila = new Stack();
pila.Push(1);
var numero = pila.Pop();
Queue
Coleccion FIFO (First in, First Out). Pensar en una cola para un evento. El primero que llegó es el primero que entra.
Queue cola = new Queue();
cola.Enqueue(3);
var numero = cola.Dequeue();
Hashtable
Hashtable table = new Hashtable();
table.Add("Alex", 2.34);
var valor = table["Alex"];
Dictionary
Dictionaries are preferred over Hashtables as they include type safety through generics.
Dictionary<string, string> dc = new Dictionary<string,string>();
dc.Add("txt", "hello world");
string value = string.Empty;
dc.TryGetValue("txt", out valor);
string value2 = dc["txt"];
Tuples
Las tuplas nos permiten almacenar hasta 8 valores de diferentes tipos que están relacionados de algún modo, sin tener que crear nuestra propia clase.
var tupla = new Tuple<int, string, string, DateTime>(1, "Mario", "Codes", DateTime.Now);
var tupla2 = Tuple.Create(1, "Mario", "Codes", DateTime.Now);