Académique Documents
Professionnel Documents
Culture Documents
Collections C#
Collection List
Representa una lista de objetos fuertemente tipados a la que se puede
obtener acceso por ndice. Proporciona mtodos para buscar, ordenar y
manipular listas.
Sintaxis:
[SerializableAttribute]
public class List<T> : IList<T>, ICollection<T>,
IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>,
IEnumerable<T>,
IEnumerable
List<T>(): Inicializa una nueva instancia de la clase List<T> que est vaca
y tiene la capacidad inicial predeterminada.
Ejemplo:
// Creamos una lista de tipo String
var salmons = new List<string>();
salmons.Add("Anibal");
salmons.Add("Joel");
salmons.Add("Julio");
salmons.Add("Celina");
foreach (var salmon in salmons)
{
Console.Write(salmon + " ");
}
Collection Dictionary
Una clase Dictionary es una estructura de datos que representa una
coleccin de claves y valores de par de datos. La clave es idntica en un par
clave-valor y puede tener como mximo un valor en el diccionario, pero un
valor puede ser asociado con muchas llaves diferentes.
Esta clase se define en el espacio de nombres System.Collections.Generic,
por lo que debe importar o using namespace System.Collections.Generic.
Sintaxis:
[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>,
ICollection<KeyValuePair<TKey, TValue>>, IDictionary,
ICollection,
IReadOnlyDictionary<TKey, TValue>,
IReadOnlyCollection<KeyValuePair<TKey, TValue>>,
IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable,
ISerializable,
IDeserializationCallback
Parmetros de tipo
TKey
Tipo de las claves del diccionario.
TValue
Tipo de los valores del diccionario.
Ejemplo
Dictionary < string, int > dict = new Dictionary < string, int > ();
dict.Add("Uno", 1);
dict.Add("Dos", 2);
dict.Add("Tres", 3);
dict.Add("Cuatro", 4);
foreach (KeyValuePair < string, int > pair in dict)
{
Console.Write(pair.Key.ToString() + " - " +
pair.Value.ToString());
}
Collection HashTable
Hashtable en C # representa una coleccin de pares de clave / valor que
mapea claves para valorar. Cualquier objeto no nulo puede ser utilizado
como una clave pero una lata de valor. Podemos recuperar los elementos de
tabla hash para proporcionar la clave. Ambas claves y valores son objetos.
Las funciones de uso comn en Hashtable son:
-
Ejemplo
Dictionary < string, int > dict = new Dictionary < string, int > ();
dict.Add("one", 1);
dict.Add("two", 2);
dict.Add("three", 3);
dict.Add("four", 4);
foreach (KeyValuePair < string, int > pair in dict)
{
Console.Write(pair.Key.ToString() + " - " +
pair.Value.ToString());
}
Collection ArrayList
ArrayList es uno de la estructura de datos ms flexible de C#. ArrayList
contiene una simple lista de valores. ArrayList implementa la interfaz IList
utilizando una matriz y muy fcilmente podemos agregar, insertar, eliminar,
ver, etc. Es muy flexible, ya que podemos aadir sin informacin cualquier
tamao, es decir va a crecer de forma dinmica y tambin disminuir.
Collection Sets
HashSet: es un conjunto de recopilacin optimizada. Ayuda elimina
duplicados cadenas o elementos en una matriz. Proporciona una sintaxis
sencilla para la toma de la unin de los elementos de un conjunto. Esto se
realiza en su constructor.
Sintaxis:
[SerializableAttribute]
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort =
true)]
public class HashSet<T> : ISerializable, IDeserializationCallback,
ISet<T>, ICollection<T>, IEnumerable<T>, IEnumerable
Parmetros de tipo
T
Tipo de los elementos del conjunto hash.
Ejemplo
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<int> evenNumbers = new HashSet<int>();
HashSet<int> oddNumbers = new HashSet<int>();
for (int i = 0; i < 5; i++)
{
evenNumbers.Add(i * 2);
oddNumbers.Add((i * 2) + 1);
}
Console.Write("evenNumbers contains {0} elements: ",
evenNumbers.Count);
DisplaySet(evenNumbers);
Console.Write("oddNumbers contains {0} elements: ",
oddNumbers.Count);
DisplaySet(oddNumbers);
HashSet<int> numbers = new HashSet<int>(evenNumbers);
Console.WriteLine("numbers UnionWith oddNumbers...");
numbers.UnionWith(oddNumbers);
Console.Write("numbers contains {0} elements: ",
numbers.Count);
DisplaySet(numbers);
}
private static void DisplaySet(HashSet<int> set)
{
Console.Write("{");
Parmetros de tipo
T
Tipo de elementos del conjunto
Ejemplo:
using
using
using
using
System;
System.Collections;
System.Collections.Generic;
System.IO;
class Program
{
static void Main(string[] args)
{
try
{
IEnumerable<string> files1 =
Directory.EnumerateFiles(@"\\archives\2007\media",
"*", SearchOption.AllDirectories);
SortedSet<string> mediaFiles1 =
new SortedSet<string>(new ByFileExtension());
foreach (string f in files1)
{
mediaFiles1.Add(f.Substring(f.LastIndexOf(@"\") + 1));
}
Console.WriteLine("Remove docs from the set...");
Console.WriteLine("\tCount before: {0}",
mediaFiles1.Count.ToString());
mediaFiles1.RemoveWhere(isDoc);
Console.WriteLine("\tCount after: {0}",
mediaFiles1.Count.ToString());
Console.WriteLine();
SortedSet<string> aviFiles =
mediaFiles1.GetViewBetween("avi", "avj");
Console.WriteLine("AVI files:");
foreach (string avi in aviFiles)
{
Console.WriteLine("\t{0}", avi);
}
Console.WriteLine();
IEnumerable<string> files2 =
Directory.EnumerateFiles(@"\\archives\2008\media",
"*", SearchOption.AllDirectories);
SortedSet<string> mediaFiles2 = new SortedSet<string>(new
ByFileExtension());
foreach (string f in files2)
{
mediaFiles2.Add(f.Substring(f.LastIndexOf(@"\") + 1));
}
Console.WriteLine("Remove duplicates (of mediaFiles2) from
the set...");
Console.WriteLine("\tCount before: {0}",
mediaFiles1.Count.ToString());
mediaFiles1.ExceptWith(mediaFiles2);
Console.WriteLine("\tCount after: {0}",
mediaFiles1.Count.ToString());
Console.WriteLine();
Console.WriteLine("List of mediaFiles1:");
foreach (string f in mediaFiles1)
{
Console.WriteLine("\t{0}",f);
}
IEqualityComparer<SortedSet<string>> comparer =
SortedSet<string>.CreateSetComparer();
HashSet<SortedSet<string>> allMedia =
new HashSet<SortedSet<string>>(comparer);
allMedia.Add(mediaFiles1);
allMedia.Add(mediaFiles2);
}
catch(IOException ioEx)
{
Console.WriteLine(ioEx.Message);
}
catch (UnauthorizedAccessException AuthEx)
{
Console.WriteLine(AuthEx.Message);
}
}
private static bool isDoc(string s)
{
if (s.ToLower().EndsWith(".txt") ||
s.ToLower().EndsWith(".doc") ||
s.ToLower().EndsWith(".xls") ||
s.ToLower().EndsWith(".xlsx") ||
s.ToLower().EndsWith(".pdf") ||
s.ToLower().EndsWith(".doc") ||
s.ToLower().EndsWith(".docx"))
{
return true;
}
else
{
return false;
}
}
}
public class ByFileExtension : IComparer<string>
{
string xExt, yExt;