var ListaInfoLineasAgrupadas = (from l in _Factura.Lineas
group l by l.CuentaCosto into grupo
select new
{
CuentaCosto = grupo.First().CuentaCosto,
Proyecto = grupo.First().Proyecto,
ValorNeto = grupo.Sum(g => g.ValorNeto),
PesoLinea = 0
}
).ToList();
Mostrando entradas con la etiqueta Linq. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linq. Mostrar todas las entradas
viernes, 3 de mayo de 2013
miércoles, 4 de enero de 2012
linq contar caracter
string parametros = "asd|123|oqiwe123d&$#$|"
long pipes = parametros.LongCount(p => p.Equals('|'));
el resultado de esto daria que pipes es igual a 3.
long pipes = parametros.LongCount(p => p.Equals('|'));
el resultado de esto daria que pipes es igual a 3.
martes, 21 de junio de 2011
concat y orderby linq
En este caso se están concatenando 2 listas en una tercera lista y ordenando por el campo RazonSocial
public IList GetEstacionesByIdZonaGeografica(string idZonaGeografica)
{
BpCrud<Estaciones> pbCrudEstaciones = new BpCrud<Estaciones>();
BpCrud<ZonaGeograficaEstaciones> bpCrudZonaGeograficaEstaciones = new BpCrud<ZonaGeograficaEstaciones>();
IList<Estaciones> listaEstaciones;
IList<ZonaGeograficaEstaciones> listaZonaGeograficaEstaciones;
listaEstaciones = pbCrudEstaciones.BM.List();
listaZonaGeograficaEstaciones = bpCrudZonaGeograficaEstaciones.BM.List();
//concatena las dos listas
var estacionInfo =
(
//estaciones no asociadas a ninguna zona geografica
from le in listaEstaciones
where le.ZonaGeograficaEstacionesList.Count == 0
select new
{
IdZonaGeografica = "0",
RazonSocial = le.Razonsocial,
Acceso = 0,
ZonaGeografica = "sin zona asociada",
Pbl = le.Pbl,
AddUser = 0,
AddDate = (DateTime?) DateTime.MinValue
}
)
.Concat
(
//estaciones asociadas a la zona geografica
from lzge in listaZonaGeograficaEstaciones
where lzge.ZonaGeografica.Zona == idZonaGeografica
select new
{
IdZonaGeografica = lzge.ZonaGeografica.Zona,
RazonSocial = lzge.Estaciones.Razonsocial,
Acceso = 1,
ZonaGeografica = lzge.ZonaGeografica.Descripcion,
Pbl = lzge.Estaciones.Pbl,
AddUser = lzge.Adduser,
AddDate = lzge.Adddate
}
).OrderBy(q => q.RazonSocial);
return estacionInfo.ToList();
}
public IList GetEstacionesByIdZonaGeografica(string idZonaGeografica)
{
BpCrud<Estaciones> pbCrudEstaciones = new BpCrud<Estaciones>();
BpCrud<ZonaGeograficaEstaciones> bpCrudZonaGeograficaEstaciones = new BpCrud<ZonaGeograficaEstaciones>();
IList<Estaciones> listaEstaciones;
IList<ZonaGeograficaEstaciones> listaZonaGeograficaEstaciones;
listaEstaciones = pbCrudEstaciones.BM.List();
listaZonaGeograficaEstaciones = bpCrudZonaGeograficaEstaciones.BM.List();
//concatena las dos listas
var estacionInfo =
(
//estaciones no asociadas a ninguna zona geografica
from le in listaEstaciones
where le.ZonaGeograficaEstacionesList.Count == 0
select new
{
IdZonaGeografica = "0",
RazonSocial = le.Razonsocial,
Acceso = 0,
ZonaGeografica = "sin zona asociada",
Pbl = le.Pbl,
AddUser = 0,
AddDate = (DateTime?) DateTime.MinValue
}
)
.Concat
(
//estaciones asociadas a la zona geografica
from lzge in listaZonaGeograficaEstaciones
where lzge.ZonaGeografica.Zona == idZonaGeografica
select new
{
IdZonaGeografica = lzge.ZonaGeografica.Zona,
RazonSocial = lzge.Estaciones.Razonsocial,
Acceso = 1,
ZonaGeografica = lzge.ZonaGeografica.Descripcion,
Pbl = lzge.Estaciones.Pbl,
AddUser = lzge.Adduser,
AddDate = lzge.Adddate
}
).OrderBy(q => q.RazonSocial);
return estacionInfo.ToList();
}
select distinct linq
Supongamos que tenemos el siguiente DTO:
public class Receta
{
public virtual int SqIdreceta {get;set;}
public virtual string Shortdescom {get;set;}
public virtual Decimal? Porcion {get;set;}
public virtual string Ord {get;set;}
public virtual string Unidadventa {get;set;}
/// <summary>
/// Maestra
/// </summary>
public virtual Maestra Maestra {get;set;}
/// <summary>
/// Maestra nuevamente
/// </summary>
public virtual Maestra Maestraplucom { get; set; }
}
supongamos que tenemos una tabla "Receta" que describe los productos que componen otro(por ejemplo 1/4 de pollo con papas fritas y bebida), si hacemos un select a esta tabla para desplegar las recetas en un combo para mostrar cuantas recetas tenemos, cada receta va a aparecer n veces (n es la cantidad de ingredientes que componen la receta) haremos un select distinct para obtener las recetas y mostraremos de nuevo el orderby
public IList GetAllRecetaCombo()
{
IList<Receta> listaReceta = new List<Receta>();
BpCrud<Receta> bpCrudReceta = new BpCrud<Receta>();//clase que va a la base de datos y que tiene sus métodos CRUD ya implementados
listaReceta = bpCrudReceta.BM.List();//vienen las recetas repetidas
var recetaInfo =
(
from rec in listaReceta
orderby rec.Maestra.Shortdes// las ordenamos
select new
{
PLUReceta = rec.Maestra.Plu,
DescripcionReceta = rec.Maestra.Shortdes
}
).Distinct().ToList();//filtramos
return recetaInfo.ToList();
}
public class Receta
{
public virtual int SqIdreceta {get;set;}
public virtual string Shortdescom {get;set;}
public virtual Decimal? Porcion {get;set;}
public virtual string Ord {get;set;}
public virtual string Unidadventa {get;set;}
/// <summary>
/// Maestra
/// </summary>
public virtual Maestra Maestra {get;set;}
/// <summary>
/// Maestra nuevamente
/// </summary>
public virtual Maestra Maestraplucom { get; set; }
}
supongamos que tenemos una tabla "Receta" que describe los productos que componen otro(por ejemplo 1/4 de pollo con papas fritas y bebida), si hacemos un select a esta tabla para desplegar las recetas en un combo para mostrar cuantas recetas tenemos, cada receta va a aparecer n veces (n es la cantidad de ingredientes que componen la receta) haremos un select distinct para obtener las recetas y mostraremos de nuevo el orderby
public IList GetAllRecetaCombo()
{
IList<Receta> listaReceta = new List<Receta>();
BpCrud<Receta> bpCrudReceta = new BpCrud<Receta>();//clase que va a la base de datos y que tiene sus métodos CRUD ya implementados
listaReceta = bpCrudReceta.BM.List();//vienen las recetas repetidas
var recetaInfo =
(
from rec in listaReceta
orderby rec.Maestra.Shortdes// las ordenamos
select new
{
PLUReceta = rec.Maestra.Plu,
DescripcionReceta = rec.Maestra.Shortdes
}
).Distinct().ToList();//filtramos
return recetaInfo.ToList();
}
orderby en linq
Supongamos que tenemos el siguiente DTO.
public class Rol
{
public virtual int SqIdrol {get;set;}
public virtual string NombreRol {get;set;}
public virtual string Descripcion {get;set;}
public virtual DateTime? Adddate {get;set;}
public virtual int? Adduser {get;set;}
public virtual DateTime? Moddate {get;set;}
public virtual int? Moduser {get;set;}
public virtual IList<Acceso> AccesoList {get;set;}
public virtual IList<Usuario> UsuarioList {get;set;}
}
y queremos cargar un combo con la descripcion del rol y con el id del rol ordenado por la descripcion, seria de la siguiente forma:
public IList GetAllRol(int idSistema)
{
IList<Rol> listaRol = null;
BmRol bmRol = new BmRol();//clase que va a la base de datos y que tiene sus métodos CRUD ya implementados
Rol rol = new Rol();
rol.Sistema = new Sistema(idSistema);
listaRol = bmRol.FindRol(rol);
var rolInfo =
(from roll in listaRol
orderby roll.Descripcion
select new
{
roll.Descripcion,
roll.SqIdrol
}
);
return rolInfo.ToList();
}
public class Rol
{
public virtual int SqIdrol {get;set;}
public virtual string NombreRol {get;set;}
public virtual string Descripcion {get;set;}
public virtual DateTime? Adddate {get;set;}
public virtual int? Adduser {get;set;}
public virtual DateTime? Moddate {get;set;}
public virtual int? Moduser {get;set;}
public virtual IList<Acceso> AccesoList {get;set;}
public virtual IList<Usuario> UsuarioList {get;set;}
}
y queremos cargar un combo con la descripcion del rol y con el id del rol ordenado por la descripcion, seria de la siguiente forma:
public IList GetAllRol(int idSistema)
{
IList<Rol> listaRol = null;
BmRol bmRol = new BmRol();//clase que va a la base de datos y que tiene sus métodos CRUD ya implementados
Rol rol = new Rol();
rol.Sistema = new Sistema(idSistema);
listaRol = bmRol.FindRol(rol);
var rolInfo =
(from roll in listaRol
orderby roll.Descripcion
select new
{
roll.Descripcion,
roll.SqIdrol
}
);
return rolInfo.ToList();
}
Suscribirse a:
Entradas (Atom)