Las colecciones de clases de C# son un conjunto de clases diseñadas específicamente para agrupar objetos y llevar a cabo tareas con ellos.
Tanto la list‹T› como la ArrayList y otras clases de la Collections tienen propiedades muy similares a los arrays de C# (para más detalles sobre estos busquen nueva el tema Matrices y confirmen). Una ventaja fundamental de estas clases sobre los arrays es que puedan crecer y reducir el número de objetos almacenados.
La clase list‹T› esta contenida en System.Collections.Generic, mientras que la clase ArrayList figura en el System.Collections.
La sintaxis para crear una colección list‹T› es la siguiente:
List‹tipo› nombre = new List‹tipo›();
ArrayList es un objeto creado de una manera similar, aunque sin el argumento de tipo:
ArrayList nombre = new ArrayList ();
Con esta sintaxis ahora podemos crear una list‹T› denominada listacolores:
using System;
using System.Collections.Generic;
public class Lists
{
static void Main()
{
List‹string› listacolores = new List‹string›();
}
}
Añadir artículos a las listas
Una vez que una lista se ha creado hay una serie de métodos que pueden ser llamados a realizar tareas en la lista. En este caso para agrear elementos a la lista de objetos se utiliza el método Add(). Ejemplo:
List‹string› ListaColores = new List‹string›();
ListaColores.Add ("Azul");
ListaColores.Add ("Rojo");
ListaColores.Add ("Verde");
ListaColores.Add ("Amarillo");
ListaColores.Add ("Morado");
Acceso a los elementos
A los elementos individuales en una lista se puede acceder mediante el índice del valor de la partida (teniendo en cuenta que el primer punto del índice es 0, el segundo índice 1 y así sucesivamente). El valor del índice se encuentra entre corchetes tras el nombre de la lista. Por ejemplo, para acceder al segundo punto del objeto ListaColores:
Console.WriteLine (ListaColores[1]);
Un elemento de la lista puede cambiar su valor de manera similar usando el índice combinado con el operador de asignación. Por ejemplo, para cambiar el color de verde a mamey:
ListaColores[2] = "mamey";
Todos los elementos de una lista se puede acceder mediante un bucle foreach. Por ejemplo:
foreach (string color in ListaColores)
{
Console.WriteLine ( color );
}
Cuando compilado y ejecutado, el código de salida anterior mostrara todos los colores.
Inserción de artículos en una lista
Anteriormente se utilizó el método Add() para añadir elementos a una lista. El método Add(), sin embargo, sólo añade elementos al final de una lista. A veces es necesario añadir un nuevo tema en una ubicación específica en una lista. Insert() es el método para este fin específico. Insert() recibe dos argumentos, un entero que indica el índice de localización de la inserción y el tema que se incluirá en ese lugar. Por ejemplo, para insertar un elemento en la posición 2 de la lista seria:
ListaColores.Insert(2, "Blanco");
Ordenando Listas
No hay manera de decirle a C# que ordene automáticamente una lista de artículos despues de añadir. Si los elementos de una lista deben estar siempre ordenados se debe llamar al metodo Sort una vez se añaden nuevos elementos:
ListaColores.Sort();
Búsqueda de elementos en una lista
Se proveen un buen número de métodos con las clases listas y la ArrayList. El método más básico es el Contains(), en el cual cuando se pide a un objeto ArrayList o List devuelve true si el tema se encuentra en la lista, o false si no se encuentra.
El IndexOf() devuelve el valor de un índice de un elemento de la lista. Por ejemplo, el código siguiente muestra el valor de salida de 2, que es el índice de la posición de "Amarillo" en la cadena:
List‹string› ListaColores = new List‹string›();
ListaColores.Add ("Red");
ListaColores.Add ("Green");
ListaColores.Add ("Amarillo");
ListaColores.Add ("Morado");
ListaColores.Add ("Mamey");
Console.WriteLine(ListaColores.IndexOf("Amarillo"));
Si el elemento no se encuentra en la lista devuelve -1.
Esta técnica podría utilizarse para reemplazar un valor con otro. Por ejemplo, sin conocer de antemano el valor del índice del "Amarillo" cadena podemos cambiar a "Negro":
ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro";
El LastIndexOf() método devuelve el valor del índice del último elemento de la lista para que coincida con el punto especificado. Esto es particularmente útil cuando la lista contiene elementos duplicados.
Obtener informacion de una lista
Hay dos miembros de la clase que son útiles para obtener información acerca de una lista de C # o colección de objetos ArrayList. La propiedad Capacity puede ser utilizada para identificar el número de artículos que puede almacenar una colección sin tener que cambiar el tamaño.
El propiedad Count, por otra parte, identifica cuantos artículos se encuentran actualmente almacenados en la lista. Por razones obvias, Capacity sera siempre superior a Count.
En los casos en que existe una gran diferencia entre el Count y Capacity los elementos pueden ser borrados con el método TrimExcess().
Borrado de elementos
Todos los elementos de una lista podrán ser borrados mediante el método Clear():
ListaColores.Clear();
Clear() elimina los elementos de la lista y establece la propiedad Count a cero. La propiedad Capacity, sin embargo, sigue siendo la misma. Para eliminar la Capacity despues de el método Clear() hay que llamar a TrimExcess().
Tanto la list‹T› como la ArrayList y otras clases de la Collections tienen propiedades muy similares a los arrays de C# (para más detalles sobre estos busquen nueva el tema Matrices y confirmen). Una ventaja fundamental de estas clases sobre los arrays es que puedan crecer y reducir el número de objetos almacenados.
La clase list‹T› esta contenida en System.Collections.Generic, mientras que la clase ArrayList figura en el System.Collections.
La sintaxis para crear una colección list‹T› es la siguiente:
List‹tipo› nombre = new List‹tipo›();
ArrayList es un objeto creado de una manera similar, aunque sin el argumento de tipo:
ArrayList nombre = new ArrayList ();
Con esta sintaxis ahora podemos crear una list‹T› denominada listacolores:
using System;
using System.Collections.Generic;
public class Lists
{
static void Main()
{
List‹string› listacolores = new List‹string›();
}
}
Añadir artículos a las listas
Una vez que una lista se ha creado hay una serie de métodos que pueden ser llamados a realizar tareas en la lista. En este caso para agrear elementos a la lista de objetos se utiliza el método Add(). Ejemplo:
List‹string› ListaColores = new List‹string›();
ListaColores.Add ("Azul");
ListaColores.Add ("Rojo");
ListaColores.Add ("Verde");
ListaColores.Add ("Amarillo");
ListaColores.Add ("Morado");
Acceso a los elementos
A los elementos individuales en una lista se puede acceder mediante el índice del valor de la partida (teniendo en cuenta que el primer punto del índice es 0, el segundo índice 1 y así sucesivamente). El valor del índice se encuentra entre corchetes tras el nombre de la lista. Por ejemplo, para acceder al segundo punto del objeto ListaColores:
Console.WriteLine (ListaColores[1]);
Un elemento de la lista puede cambiar su valor de manera similar usando el índice combinado con el operador de asignación. Por ejemplo, para cambiar el color de verde a mamey:
ListaColores[2] = "mamey";
Todos los elementos de una lista se puede acceder mediante un bucle foreach. Por ejemplo:
foreach (string color in ListaColores)
{
Console.WriteLine ( color );
}
Cuando compilado y ejecutado, el código de salida anterior mostrara todos los colores.
Inserción de artículos en una lista
Anteriormente se utilizó el método Add() para añadir elementos a una lista. El método Add(), sin embargo, sólo añade elementos al final de una lista. A veces es necesario añadir un nuevo tema en una ubicación específica en una lista. Insert() es el método para este fin específico. Insert() recibe dos argumentos, un entero que indica el índice de localización de la inserción y el tema que se incluirá en ese lugar. Por ejemplo, para insertar un elemento en la posición 2 de la lista seria:
ListaColores.Insert(2, "Blanco");
Ordenando Listas
No hay manera de decirle a C# que ordene automáticamente una lista de artículos despues de añadir. Si los elementos de una lista deben estar siempre ordenados se debe llamar al metodo Sort una vez se añaden nuevos elementos:
ListaColores.Sort();
Búsqueda de elementos en una lista
Se proveen un buen número de métodos con las clases listas y la ArrayList. El método más básico es el Contains(), en el cual cuando se pide a un objeto ArrayList o List devuelve true si el tema se encuentra en la lista, o false si no se encuentra.
El IndexOf() devuelve el valor de un índice de un elemento de la lista. Por ejemplo, el código siguiente muestra el valor de salida de 2, que es el índice de la posición de "Amarillo" en la cadena:
List‹string› ListaColores = new List‹string›();
ListaColores.Add ("Red");
ListaColores.Add ("Green");
ListaColores.Add ("Amarillo");
ListaColores.Add ("Morado");
ListaColores.Add ("Mamey");
Console.WriteLine(ListaColores.IndexOf("Amarillo"));
Si el elemento no se encuentra en la lista devuelve -1.
Esta técnica podría utilizarse para reemplazar un valor con otro. Por ejemplo, sin conocer de antemano el valor del índice del "Amarillo" cadena podemos cambiar a "Negro":
ListaColores[ListaColores.IndexOf("Amarillo")] = "Negro";
El LastIndexOf() método devuelve el valor del índice del último elemento de la lista para que coincida con el punto especificado. Esto es particularmente útil cuando la lista contiene elementos duplicados.
Obtener informacion de una lista
Hay dos miembros de la clase que son útiles para obtener información acerca de una lista de C # o colección de objetos ArrayList. La propiedad Capacity puede ser utilizada para identificar el número de artículos que puede almacenar una colección sin tener que cambiar el tamaño.
El propiedad Count, por otra parte, identifica cuantos artículos se encuentran actualmente almacenados en la lista. Por razones obvias, Capacity sera siempre superior a Count.
En los casos en que existe una gran diferencia entre el Count y Capacity los elementos pueden ser borrados con el método TrimExcess().
Borrado de elementos
Todos los elementos de una lista podrán ser borrados mediante el método Clear():
ListaColores.Clear();
Clear() elimina los elementos de la lista y establece la propiedad Count a cero. La propiedad Capacity, sin embargo, sigue siendo la misma. Para eliminar la Capacity despues de el método Clear() hay que llamar a TrimExcess().
JN# Estoy haciendo un proyecto en Microsoft Visual Basic 2005 Express y cuando abro un formulario ya creado me aparece en la barra de tarea, eso es cada vez que abro un formulario.
ResponderBorrarespero que entienda la pregunta
Tratare de contestar lo que pregunta, mire, cuando usted no quiere que un formulario se vea en la barra de tareas en runtime simplemente pongale el ShowInTaskbar falso y listo.
ResponderBorrarEjemplo:
FormularioX.ShowInTaskbar = false
Y luego corralo: FormularioX.Show()
Otra cosa, esta pregunta que hace no tiene nada que ver con este tema en donde la has colocado (List y ArrayList), cuando la pregunta este fuera del tema la debes hacer en la sesion Preguntas y Solicitudes...
Profe como redusco la cantida de un objeto almacenado utilizando ArrayList
ResponderBorrarDejeme ver si logro interpretar su pregunta: si se refiere a eliminar elementos contenidos en un ArrayList para reducir la cantidad de elementos almacenados es bastante simple, como se explica mas arriba usted puede determinar el indice de un elimento a traves del metodo IndexOf. Por ejemplo:
ResponderBorrarint indice = arraylist.IndexOf("elemento");
Una vez especificado el indice a eliminar lo puede hacer sencillamente utilizando el metodo RemoveAt, asi:
arraylist.RemoveAt(inidce);
Ahora bien si lo que desea es recorrer el ArrayList con un ciclo o bucle para eliminar N elementos lo puede hacer asi:
for(int i=0;i <arraylist.Count;i++)
arraylist.RemoveAt(indice);
Nota: Con foreach no se puede borrar de la misma forma porque al tener el enumerador de la coleccion bloqueas las operaciones que afecten al mismo enumerador.
Si su pregunta no fue respondida haganos saber.
Lo intente asi y ahora se me esta eliminando la constante que declare, osea el valor que le asigne
ResponderBorrarPuedes poner el codigo aqui para ver el problema?
ResponderBorrarArrayList.indexOf numbers = new ArrayList();
ResponderBorrarnumbers.Add( 7 );
int numbers = (int)numbers[0];
IndexOf es un metodo de un objeto, no un objeto. No puedes instanciar un metodo, sino un objeto. Tampoco puedes tener objetos distintos con el mismo nombre.
ResponderBorrarEl codigo seria:
Arraylist numbers = new ArrayList();
numbers.Add( 7 );
int number = numbers[0];
number tendria valor de 7.
Gracias mis hermanos por esta correccion cualquiera cosa les preguntaré
ResponderBorrarprofe: para crear una array x array y asignar un tamaño con la constante
ResponderBorrarSaludos Paul, podrias ser un poco mas explicito en la pregunta?
ResponderBorrarcomo puedo asignarle un tamaño iniciándolo con los valores por defecto (en el caso de enteros)
ResponderBorrarVamos a ver si le podemos responder a su pregunta, entiendo que lo que quiere hacer es
ResponderBorrarasignarle dimensiones a un arreglo independientemente de su declaración a través de un método
o variables. Ej:
Class Arreglos
{
Public int[,]Arreglo;
public Dimensiones(int X, int Y)
{
Arreglo = new int[X, Y];
}
}
Como puede ver el arreglo arriba esta declarado pero no instanciado con dimensiones especificas sino mas bien que las mismas se les pasan cuando se llama el metodo.
Consejo: cuando vaya a realizar una pregunta o un comentario siempre analise bien antes de escribirlo
para que cuando lo escriba sea bien explicito, de esa forma podremos responderle lo mas satisfactorio posible.
Debe saber que dependiendo de la claridad y presición de su pregunta será la respuesta.
mi tocayo JN# como puedo crear en la clase array funciones de búsqueda y ordenamiento
ResponderBorrarPuedes crear Metodos Extendido para clases ya existente en C#. Google te da rapidamente la respuesta a tu pregunta.
ResponderBorrarTe respondere con algunas soluciones que mas o menos me llegan y que usted tambien puede investigar. Mire para odernar y buscar en arreglos existen diversos metodos, entre los mas utilizados esta el famoso metodo de burbuja, tambien el binario, etc, ahi esta tambien el metodo Sort de la clase Array el cual ordena de manor a mayor. Ej.:
ResponderBorrarstring []Arreglo = new string[]{"elemento","elemento","elemento",...}
int i, j = 0;
string aux = "";
for(i=0;i<Arreglo.Length-1;i++)
{
for(j=0;j<Arreglo.Length-i-1;j++)
{
//uso el método CompareTo() para determinar si el elemento es menor, igual o mayor
if (Arreglo[j+1].CompareTo(Arreglo[j]) <= 0)
{
aux=Arreglo[j+1];
Arreglo[j+1]=Arreglo[j];
Arreglo[j]=aux;
}
}
}
//Lo imprimo si quiero ya estando ordenado
for(i = 0; i < Arreglo.Length; i++)
{
Console.WriteLine(i + " : " + Arreglo[i]);
}
Trate de estudiar el metodo CompareTo() y se dara cuenta de otras forams para utilizarlo, con el mismo podra hacer busquedas tambien.
Tambien hay otras formas de ordenar los arreglos, creo que de hecho hable de eso en el tema matrices, dije que uno de los metodos que se pueden utilizar de esa clase Array era el Sort, tambien esta el Reverse que ordena de mayor a menor, etc, etc, etc.
ResponderBorrarEjemplito:
//menor a mayor
Array.Sort(ArregloX);
//otro orden
Array.Reverse(ArregloX);
for (int i = 0; i < ArregloX.Length; i++)
{
MessageBox.Show(ArregloX.ToString());
}
Consejo para todos: Como dije nuesto colaborador, hermano y colega Juan Alvarez es bueno que aprendan a defenderse con Google, el mismo responde cualquier tipo de pregunta, por lo menos dentro de nuestro campo (Informatica), no deben ser dependientes de un solo medio nunca, tambien es bueno que compongan con este lugar que se le construye a ustedes, si ustedes indagan lo suficiente tambien pueden colaborar con ideas, soluciones, etc.
Otra forma super facil de buscar en un arreglo es comparando los elementos dentro de las posiciones con un objetivo cualquiera.
ResponderBorrarEj:
string objetivo, posicion = "";
Console.WriteLine("Ingrese objetivo que desea buscar en el arreglo:");
elemento = Console.ReadLine();
for (int i = 0; i < 10; i ++)
{
if (arreglo[i] == objetivo)
{
posicion = posicion + ' ' + i;
}
}
Console.WriteLine("El objetivo se encuantra en las posiciones:{0}", posicion);
Console.ReadLine();
Espero que tengan muchas ideas a partir de estos ejemplos, repito, NO se detengan aqui,INDAGUEN (google, etc, etc.)
Este comentario ha sido eliminado por el autor.
ResponderBorrarusing system;
ResponderBorrarusing system.collections.generic;
public class list
{
static void main ()
{
list marcascarro = new list ();
{
marcascarro.add("honda");
marcascarro.add ("bmw");
marcascarro.add ("mercedes");
marcascarro.add ("toyota");
marcascarro.add ("misutbishi");
}
}
}
jonathan este ejemplo de lista k le mando esta bien?????
Eso es bueno que usted lo haga y lo pruebe en consola por lo menos puesto que desde ahi cualquier error simple se lo corregiria el mismo VS. A simple vista le diria que la logica de su ejercicio esta bien, aunque con algunos detallitos no validos y/o no necesarios. Por ejemplo al usted instanciar el objeto marcascarro usa la clase list con minuscula y es con L mayuscula, es decir si hace esto en VS lo veria con mucha facilidad, tambien luego de instanciar ese objeto utiliza una llave ({) como si va a abrir un segmento de codigo correspondiente a la instanciacion y eso no es necesario en este caso. Copiare su mismo ejemplo y le quitare o arreglare lo que le acabo de decir:
ResponderBorrarusing system;
using system.collections.generic;
public class list
{
static void main ()
{
List marcascarro = new List();
marcascarro.add("honda");
marcascarro.add ("bmw");
marcascarro.add ("mercedes");
marcascarro.add ("toyota");
marcascarro.add ("misutbishi");
}
}
profe algunas cosas de sus ejemplo anterior (el de dinosaur, que tiene mas arriba) que no la entendiendo y me gustaria saberla , como es el caso de esta linea.
ResponderBorrarConsole.WriteLine("\nInsert(2, \"Compsognathus\")");
dinosaurs.Insert(2, "Compsognathus");
no la entiendo y me gustaria saber si en el ejemplo que yo le presento (marcascarro)
puedo insertar de la forma que usted explica al en el tema.
mire quiero saber si asi estaria bien para insertar.
using system;
using system.collections.generic;
public class list
{
static void main ()
{
List marcascarro = new List();
marcascarro.add("honda");
marcascarro.add ("bmw");
marcascarro.add ("mercedes");
marcascarro.add ("toyota");
marcascarro.add ("misutbishi");
marcacarros.insert(3,"daihatsu");
si podria ser de esta forma plis.... respondame
Este comentario ha sido eliminado por el autor.
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarIgnora los comentarios anteriores ya que los simbolos < > no salieron.
ResponderBorrarPrimero, te falta definir el tipo de datos de la lista (es decir, la "clase" de los objetos contenidos en la misma)...la forma correcta de definir una lista es List<tipo> lista = new List<tipo>(); como está en el ejemplo del ilustrísimo JN#. Segundo, todos los metodos de clases del framework empiezan por mayusculas (en C# add y Add no es lo mismo).
Tu ejemplo estaría correcto de la siguiente forma.
class Program
{
static void Main(string[] args)
{
List<string> marcascarro = new List<string>();
marcascarro.Add("honda");
marcascarro.Add("bmw");
marcascarro.Add("mercedes");
marcascarro.Add("toyota");
marcascarro.Add("misutbishi");
Console.WriteLine("La lista inicial de carros es:\n");
foreach (string marcacarro in marcascarro)
Console.WriteLine("Carro: " + marcacarro);
marcascarro.Insert(3, "daihatsu");
Console.WriteLine("\nLa lista final de carros es:\n");
foreach (string marcacarro in marcascarro)
Console.WriteLine("Carro: " + marcacarro);
}
}
Este programa da como resultado:
La lista inicial de carros es:
Carro: honda
Carro: bmw
Carro: mercedes
Carro: toyota
Carro: misutbishi
La lista final de carros es:
Carro: honda
Carro: bmw
Carro: mercedes
Carro: daihatsu
Carro: toyota
Carro: misutbishi
El ejemplo extraido del MSDN fue corregido ya que en la declaracion del objeto dinosaurs no se especificaba el tipo.
ResponderBorrarusing System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<string>
dinosaurs = new List<string>();
Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
Console.WriteLine("Count: {0}", dinosaurs.Count);
Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
dinosaurs.Contains("Deinonychus"));
Console.WriteLine("\nInsert(2, \"Compsognathus\")");
dinosaurs.Insert(2, "Compsognathus");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);
Console.WriteLine("\nRemove(\"Compsognathus\")");
dinosaurs.Remove("Compsognathus");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
dinosaurs.TrimExcess();
Console.WriteLine("\nTrimExcess()");
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Console.WriteLine("Count: {0}", dinosaurs.Count);
dinosaurs.Clear();
Console.WriteLine("\nClear()");
Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
Console.WriteLine("Count: {0}", dinosaurs.Count);
}
}
/* Este codigo de ejemplo produce la siguiente salida:
Capacity: 0
Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus
Capacity: 8
Count: 5
Contains("Deinonychus"): True
Insert(2, "Compsognathus")
Tyrannosaurus
Amargasaurus
Compsognathus
Mamenchisaurus
Deinonychus
Compsognathus
dinosaurs[3]: Mamenchisaurus
Remove("Compsognathus")
Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus
TrimExcess()
Capacity: 5
Count: 5
Clear()
Capacity: 5
Count: 0
Una gran recomendacion: Dejen que sus codigos expuestos sean evaluados en visual studio, eso les ahorraria tiempo, ya que les dice explicitamente los errores en su codigo y no tendrian necesidad de consultar a una entidad externa.
ResponderBorrarjuan muchas gracias por la correccion, pero es que estaba confundida con el ejemplo de dinosaurio y pense k no era necesario poner el tipo, pero ya veo que jonathan lo aclaro, gracias , ahora estoy mas clara
ResponderBorrarjhonatan necesito hacerle varias preguntas sobre el proyecto, por favor respondame para k me pueda ayudar , gracias.
ResponderBorrarTengo una lista de stock: list stock = new list(); a la cual le quiero cargar productos.
ResponderBorrarPero no se como hacer para que no guarde elementos repetidos.
Quiero q al ingresar un objeto en caso de que ya exista en la lista solo incremente el atributo cantidad del objeto en 1.
en caso que no exista ahun en la lista que lo agregue.
o q los cargue a todos pero a la hora de mostrar que muestre los distintos objetos con el atributo cantidad detallando la cantidad de objetos q hay.
Si alguien sabe le agradeceria.
Este comentario ha sido eliminado por el autor.
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarLo he puesto dos veces puesto que primero estaba invertida la condicion y luego porque no salieron los < >...
ResponderBorrarSaludos, veo que su necesidad es la de encontrar si lo que esta tratando de insertar en su lista existe o no, para eso podria utilizar el metodo Find.
No es la unica forma de hacerlo, supongo hay varias, una de ellas seria la siguiente:
static void Main(string[] args)
{
List<string> Productos = new List<string>();
Productos.Add("pera");
Productos.Add("mazana");
Productos.Add("uva");
Productos.Find(BuscarRegistrar);
}
private static bool BuscarRegistrar(string p)
{
if (p.ToLower() == "manzana")
{
//Aqui pone sus codigos para que incremente el elemento cantidad de su lista
return true;
}
else
{
//Aqui pone sus codigos para que inserte el producto dentro de la lista. La manzana seria un valor de una variable cualquiera que usted este capturando en cualquier lado.
return false;
}
}
/*Si quiere lo hace creando un delegado explicitamente, algo que NO es necesario puesto que C# y VB deducen el delegado correcto a partir del contexto y lo crean automáticamente.*/
Gracias pero p.Tolower no es correcto. quisas en java si.
ResponderBorrarToLower es correcto ... http://msdn.microsoft.com/en-us/library/system.string.tolower(VS.71).aspx
ResponderBorrarMire amigo anonimo, usted debe saber que siempre que contestamos tratamos de probar que lo que decimos es correcto, la idea de este blog no es desinformar. Si usted agarra y copia ese codigo que esta ahi y lo pega en su cosola C# se dara cuenta que es correcto.
ResponderBorrarEs cierto que nos equivocamos eso no lo negaremos nunca pero cuando eso sucede simplemente corregimos.
Si usted quiere ayudar bienvenido sera, pero la forma de decir que que algo es incorrecto simplemente ESO NO AYUDA, lo que ayuda es que usted escriba lo que cree es correcto, asi lo debatimos de ser necesario.
Gracias por la correccion, estuve viendo y la clase String posee el metodo ToLower().
ResponderBorrarMil disculpas. Saludos.
JN# diculpa tengo una pregunta y es....se puede crear un lista y dentro de esa lista otra...si es posible esto..m puedes mostrar como...Gracias por su respuesta..
ResponderBorrarClaro que si, el metodo Add() espera un valor de un tipo del cual fue declarada la Lista, muy bien ese tipo podria ser otra lista. Por ejemplo:
ResponderBorrarclass Listas
{
public List<List<string>
>
ListadeLista = new List<
List<
string>
>
();
public List<string> hija = new List<string>();
}
class Program
{
static void Main(string[] args)
{
Listas obj = new Listas();
obj.hija.Add("Elemento1");
obj.hija.Add("Elemento2");
obj.hija.Add("Elemento3");
obj.ListadLista.Add(obj.hija);
}
}
Ahi delcaro una lista que espera valores de tipo listas llenas de strines, luego en el Main a dicha lista le paso un objeto de tipo lista. Asi mismo se haria con cualquier otro tipoo.
Hola, disculpa la molestia, tengo una pequeña duda, quiero mostrar los elementos de una lista, con el foreach, pero la lista es de tipo Usuario(una clase que yo cree), entonces el c# me lanza un error en el foreach, algo con "GetEnumerator". Yo pienso que es porque la lista no es de un tipo de dato definido en c# pero no estoy segura, y en ese caso no se solucionar el problema, podria mostrarme como ? Gracias
ResponderBorrarJN# : Hola, disculpa la molestia, tengo una pequeña duda, quiero mostrar los elementos de una lista, con el foreach, pero la lista es de tipo Usuario(una clase que yo cree), entonces el c# me lanza un error en el foreach, algo con "GetEnumerator". Yo pienso que es porque la lista no es de un tipo de dato definido en c# pero no estoy segura, y en ese caso no se solucionar el problema, podria mostrarme como ? Gracias
ResponderBorrarHola, no es ninguna molestia, cualquier pregunta acerca de lo que tratamos en el blog es bien venida. Acerca de tu pregunta me dices que estas intentando imprimir con un foreach los elementos de tu lista y que la lista es tipo Usuario, lo primero que me gustaria ver es como estas tratando de imprimir los elementos de esa lista, lo mas factible es que me muestres tu codigo. Quizas te ayudaria saber que no puedes intentar imprimir un objeto de ese tipo Usuario al que te refieres sino un miembro de ese objeto, como por ejemplo Usuario.Nombre
ResponderBorrarMe gustaria saber cual es la diferencia entre los arrayList y las coleccion list
ResponderBorrarLa diferencia a nivel de comportamiento (métodos)es mínima. Ambas corresponden como arriba se describe al mismo espacio de nombre, solo que las ArrayList no son genéricas y por tanto no heredan de las interfaces genéricas: IList<T>, ICollection<T>,
ResponderBorrarIEnumerable<T> solo hereda de las interfaces colecciones IList, ICollection, IEnumerable, ICloneable, esta ultima no es heredada por las List<T> por tanto en este tipo de lista NO permite clonaciones o creaciones de sobras.
Tengo una List y quiero mostrala. El tema es que no hay una cantidad fija puede ser 1,3, o quien sabe.
ResponderBorrarComo hago para mostrar eso en un Formulario.
Gracias y espero pronta respuesta.
Gracias por la ayuda
ResponderBorrarLo sentimos pero no podemos contestar preguntas sin sentido y que ni siquiera usted misma sabe que es lo que quiere. Le pedimos por favor que si en verdad usted esta interesada que reformule su pregunta, hágala clara, díganos que intenta hacer y que le esta saliendo mal o no puede hacer y con gusto le ayudaremos.
ResponderBorrarCiertamente la pregunta no hacia ningun sentido y es imposible ayudarle. Tienes una lista de que?, mostrarla en que tipo de formulario?. Si puedes reformulala, o pon algun ejemplo de codigo de que es lo que tienes.
ResponderBorrarhola! kisiera saber si tienen ejemplos de listas en c#...gracias d antemano :)
ResponderBorrarLee este articulo:
Borrarhttp://aprende-csharp.blogspot.com/2010/03/colecciones-list-arraylist.html
como ingresar mi nombre en una lista y que esta la ordene correctamente ejemplo: erick
ResponderBorrarinsertar letra final: k
insertar letra inicial: e
insertar letra media: i
insertar letra ” : r
” ” ” : c
y que todas esta aparescan ordenas de esta forma = ( erick)
utilizando la clase list
De antemano te respondo que harás un mega esfuerzo para lograrlo. Como los caracteres no tienen un orden lógico u ordinal "erick" en algun sitio deberás tenerlo como referencia para validarlo contra los items de tu Array o Lista y luego jugar con algo parecido al método de burbujas (resignando valores entre items) para poder cambiar el Item[x] por el Item[y] respecto al caracter de referencia que corresponda.... sabiendo que deberás repetir/iterar este métodoc con cada elemento Item[n] de tu Array o Lista.
Borrarnecesito un ArrayList de menor a mayor en funcion de la cantidad de caracteres que tiene cada item,Como haGo eso?
ResponderBorrarPrueba produciendo otro ArrayList midiendo el Length de item y agregandolo a este nuevo ArrayList
Borrar*Necesito ordenar un ArrayList....
ResponderBorrarProbaste Sort o Reverse ??
BorrarHola quisiera hacer un programa en C# me ayudan con un par de ejemplos
ResponderBorrarAquí hay algunos ejemplos, toma el que creas mas te convenga www.google.com Luego cuando estes programando si tienes alguna pregunta sobre tu código pues nos la haces.
BorrarAquí tienes uno bueno:
ResponderBorrarpublic class Hello1
{
public static void Main()
{
System.Console.WriteLine("Hello, World!");
}
}
Hola! estoy trabajando con las list en un programa de polinomios, el programa genera "x" numero de polinomios aleatoriamente y los quiero almacenar en la lista, sin embargo utilizando el .Add, o Insert solo me almacena "x" veces el último polinomio generado...¿que puedo hacer para que la lista almacene los "x" polinomios diferentes?
ResponderBorrarEstoy por pensar que quizás no estés utilizando correctamente un bucle, pega aquí tu código para que qué esta incorrecto.
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarComo te había dicho antes, lo que tienes el el insert mal empleado o fuera del bucle. Intenta dentro de este if:
ResponderBorrarif (j < indice)
{
ArrCoefs[j] = a.Next(-10,10);
Aleatorio = new Polinomio(ArrCoefs);
chklstbxAleatorios.Items.Add(Aleatorio.ToString(), false);
listpoli.Insert(i,Aleatorio);
}
Holaa!! tengo un nuevo reto... Ahora debo crear un programa que grafique funciones cuadraticas, pero no he encontrado como crear una grafica en c sharp. Puedes ayudarme??? gracias
ResponderBorrarHola Estrela, la verdad es que eso es un tema bastante amplio, por lo pronto te puedo decir que para crear gráficos puedes utilizar la clase Graphics y su método CreateGraphics(), no es tan complejo dibujar "figuras simples". Puedes meter un objeto de tipo Bitmap dentro de un Graphics y manipularlo utilizando las clases Pen, Brush, Font, Color, etc. Mi mejor consejo en este sentido es que primero te leas acerca de estas clases, las implemente y cuando tengas algun inconveniente con tu código pues nos preguntas y con gusto trataremos de ayudarte.
BorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarNo estamos para hacer tu trabajo, podemos ayudarte resolver errores o snippets de con mejores soluciones a alguna que ya tengas hecha. Si realmente quieres ayuda de nosotros, empieza a hacer tu trabajo y el confusiones o errores que tengas entonces nos consultas.
ResponderBorrarBuenas noches, tengo una duda con las lista, estoy haciendo una clase que me trae (id,nombre,apellido) de la base de datos, estos datos deseo almacenarlos en una lista y llamarla desde cualquier formulario. Pregunta
ResponderBorrar1. como hago para almacernarlos en la lista los tres datos si son varios registros.
2. Como hago para sacar esa informacion en un formulario con un foreach.
Gracias de antemano por sus respuestas.
ResponderBorrarArrayList. Programas de manejar datos inciertos.
Un ArrayList acomoda elementos adicionales, más
de lo que podría anticipar. Esta capacidad es
útil.
Esta clase funciona de manera eficiente, cambia
el tamaño interno, hace que muchos programas
más simple. En Java se puede especificar el tipo
de elementos (una clase). Nos inicializamos con
datos.
Se crea un ArrayList. Utiliza la sintaxis de la
inferencia de diamantes en el lado derecho. Los
caracteres <> se infieren de la izquierda. El
tipo es entero.
Tamaño:
Llamamos al método size () en la instancia de
ArrayList. Esto devuelve el número de elementos
de la colección.
Obtenemos:
Finalmente llamamos al método get (), que recibe
el índice del elemento de conseguir. Nos da un bucle
sobre cada índice.
Quisiera saber como puedo aumentar el limite de un ArrayList, alguien me podria explicar?
ResponderBorrarbuenas noches.
ResponderBorrarme podrían explicar como imprimo los elementos de una lista, en una sola linea.
Gracias
hola quiero crear un programa para windows que tenga una lista de palabras las cuales se van a decifraar por medio de numeros dependiedndo de su posicion en el abecedario
ResponderBorrarel caso es que quiero que tome un elemento de la lista y me muestre una serie de operaciones para resolver y que el resultado sea la posicion de la letra en el abecedario
pero quiero que la palabra que forme sea sorpresa
Buenas.. estoy haciento un trabajo, y no estaría entendiendo que tendria que responder a esta pregunta.. si me pueden ayudar.. graciass!!..
ResponderBorrar¿Que ocurre en un objeto ArrayList cuando se intenta establecer la propiedad Capacity a un valor menor que el tamaño actual del vector , y con la propiedad Count?
Lo que sucede es que el .NET Framework hara que las Colecciones ArrayList de todas formas crezcan automaticamente con el numero de elmentos que contenga, igual sucede con la propiedad Count, de manera automatica va a variar dependiendo del numero de elementos insertados y no del valor que trates de establecer manualmente.
BorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarNecesito generar un programa utilizando un arreglo tipo list<> que permita manejar varias cuentas de usuario, donde se pueda retirar e ingresar un valor de su cuenta, utilizando c# pero no se como hacerlo
ResponderBorrarNecesito hacer un programa que genere una arreglo tipo list<> que permita manejar varias cuentas de usuarios, donde se pueda retirar o depositar un valor de su cuenta pero no se como puedo hacerlo, por favor una ayuda
ResponderBorrarNecesito hacer un programa que genere una arreglo tipo list<> que permita manejar varias cuentas de usuarios, donde se pueda retirar o depositar un valor de su cuenta pero no se como puedo hacerlo, por favor una ayuda
ResponderBorrarNecesito hacer un programa que genere una arreglo tipo list<> que permita manejar varias cuentas de usuarios, donde se pueda retirar o depositar un valor de su cuenta pero no se como puedo hacerlo, por favor una ayuda
ResponderBorrar