¿Contar objeto que hay dentro de otros objetos?
Hola, estoy programando en C# (csharp) y quiero saber por ejemplo:
Tengo una clase Venta y una clase Provincia.. Bueno, el tema es que dentro de venta tengo un atributo de tipo Provincia que me indica en que Provincia se efectua esa Venta.
Una vez creados los correspondientes objetos (todas las ventas con las provincias ya creadas e incluidas como atributo en objetos venta) necesito contar la cantidad de ventas por provincia. Como hago para contar cuantas ventas tienen como atributo una misma provincia?
Miles de gracias
Comments
/*
Este es un buen ejemplo en el que puedes usar LINQ:
http://msdn.microsoft.com/en-us/library/bb397926.a...
*/
//Tu código en C# Console Application
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
Random rand = new Random(DateTime.Now.Millisecond);
List<Venta> ventas = new List<Venta>();
//Se crean 15 objetos Venta de forma aleatoria
for (int i = 0; i < 15; i++)
{
ventas.Add(new Venta
{
Total = rand.Next(1, 100),
Cliente = "Cliente " + (i + 1),
Provincia = new Provincia
{
Nombre = "Provincia " + rand.Next(1, 10)
}
});
}
//Impresion de todas las ventas
Console.WriteLine("Todas las ventas:");
foreach (var v in ventas)
Console.WriteLine(v);
Console.WriteLine("Ventas por Provincia:");
//Consulta LINQ a la colección 'ventas'
//las agrupa y las ordena por Provincia.Nombre
var query = from v in ventas
orderby v.Provincia.Nombre
group v by v.Provincia.Nombre;
/* //Usando query methods:
var query = ventas.GroupBy(x => x.Provincia.Nombre)
.OrderBy(p => p.First().Provincia.Nombre);*/
//Ejecución e impresión de la consulta
foreach (var v in query)
Console.WriteLine("{0}: \t{1}",
//Selecciona el nombre de provincia del 1er elemento
//del grupo
v.First().Provincia.Nombre,
//Obtiene la cantidad de objetos del grupo
v.Count());
Console.ReadKey();
}
}
class Venta
{
public int NumeroVenta { get; set; }
public string Cliente { get; set; }
public double Total { get; set; }
public Provincia Provincia { get; set; }
//otras propiedades...
public override string ToString()
{
return string.Format("{0}\nTotal: {1:C}\n{2}\n",Cliente, Total, Provincia.Nombre);
}
}
class Provincia
{
public string Nombre { get; set; }
//otras propiedades...
}
te recomiendo que busque es google ya que no e podido encontrar nada que te sea de utilidad
estoy segura que encontraras algo en google.
bay besitos !!!