elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] Consulta con libreria LINQ
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] Consulta con libreria LINQ  (Leído 5,802 veces)
Siuto
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.587


Que puedo decir??


Ver Perfil WWW
[C#] Consulta con libreria LINQ
« en: 21 Diciembre 2009, 04:44 am »

Como accedo a los objetos del grupo creado con una consulta de este tipo...

Código
  1. var pares =
  2.    from carta in this
  3.    group carta by carta.Valor into grupo
  4.    where grupo.Count() >= 2
  5.    //orderby grupo.Key descending
  6.    select grupo.Key;

carta.Valor es un entero, pongo solo este fragmento de codigo porque creo que se entiende bien.

En todos los ejemplos que encuentro por internet para accedere a la consulta lo hacen por medio de dos ciclos foreach() anidados, pero yo quiero necesito eso, solo quiero ver los valores del primer entero y del segundo (o el ultimo).


En línea

dokko

Desconectado Desconectado

Mensajes: 3



Ver Perfil
Re: [C#] Consulta con libreria LINQ
« Respuesta #1 en: 4 Enero 2010, 21:51 pm »

Buenas, no entiendo lo que quieres hacer exactmente. Porque hablas de 2 valores y solo devuelves uno.  Perdona, he trabajado bastante con LINQ pero nunca habia visto el uso Group, intuyo algo de su eso, pero es nueva para mi. Si me explicas exactamente que quieres hacer y el uso  que le das a group miraria de ayudarte.

Saludos


En línea

MANULOMM


Desconectado Desconectado

Mensajes: 559


Erepublik.com


Ver Perfil
Re: [C#] Consulta con libreria LINQ
« Respuesta #2 en: 5 Enero 2010, 00:19 am »

Bueno
1. EXCELENTE que se empieze a ver LINQ en este foro.
2. A tu duda:
estas retornando los valores que cumplen con la consulta a un var llamado pares, estas agrupamdo por carta.valor siempre y cuando grupo tenga mas o solo dos elementos.
y estas guardando el key de los elementos en pares por lo cual pares es un objecto que implementa IEnumarable<T> donde T es el tipo de grupo.Key
para obentener los valores lo que se hace es recorrerlos pues como te dije implementan IEnumerable<T> para obtener el primero puedes llamar al metodo de extension First() este te retornada un valor del tipo de T de la coleccion osea el tipo de grupo.Key si la coleccion no tiene valores esta función lanzara una excepción para evitar esto puedes llamar a FirstOrDefault() el cual retorna el primero como la funcion First() pero si la coleccion esta vacia retornara el valor por defecto del tipo por ejemplo si el tipo es un String retornara String.Empty si es un Guid retornara Guid.Empty y si el tipo no tiene valor por defecto retornara null.
Para obtener otros valores como el segundo el ultimo debes convertir el var en un List o cualquier otro tipo que implemente IEnumerable<T> y lo buscas por el indice.

Espero te sirva.
NO te puese codigo pues estoy en una maquina sin IDE.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines