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


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  C# Duda, comparacion de array int - string
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C# Duda, comparacion de array int - string  (Leído 1,180 veces)
Coffee

Desconectado Desconectado

Mensajes: 2


Ver Perfil
C# Duda, comparacion de array int - string
« en: 29 Diciembre 2016, 10:11 »

Buenas, tengo que hacer un marcador de puntos
se me plantea el siguiente problema
tengo que extraer las lineas de un documento de texto
Estas almacenarlas en un array de string
___________________________________________
Hasta aqui bien, ahora viene el problema
Esas lineas son con este formato
Nombre=paco puntos=10 dia=26/11/2004
Problema
En funcion de la puntuacion de esa linea tengo que ordenar de mayor a menor todas las lineas y mostrarlas en pantalla.
Se que puedo extraer la puntuacion con un substring y esta podria añadirla a un array de int (de esta forma solo ordenaria la numeracion "puntuacion"), pero tengo que ordenar acorde a esa puntuacuin las lineas del array string

Un saludo

Gracias por la ayuda de antemano.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: C# Duda, comparacion de array int - string
« Respuesta #1 en: 30 Diciembre 2016, 06:42 »

Puedes simplificar bastante el algoritmo usando LINQ:

Código
  1. using System.Linq;

Código
  1. string[] lines = {
  2.    "Nombre=paco    puntos=11 dia=26/11/2004",
  3.    "Nombre=jacinto puntos=1  dia=26/11/2004",
  4.    "Nombre=bartolo puntos=10 dia=26/11/2004"
  5. };
  6.  
  7. IOrderedEnumerable<string> sorted =
  8.    from line in lines
  9.    orderby Convert.ToInt32(line.Remove(line.LastIndexOf(' ')).
  10.                                 Remove(0, line.IndexOf("puntos=", StringComparison.OrdinalIgnoreCase) + "puntos=".Length).
  11.                                 TrimEnd(' '))
  12.    select line;
  13.  
  14. foreach (string line in sorted) {
  15.    Trace.WriteLine(line);
  16. }

Saludos


« Última modificación: 30 Diciembre 2016, 07:26 por Eleкtro » En línea


Coffee

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: C# Duda, comparacion de array int - string
« Respuesta #2 en: 31 Diciembre 2016, 05:31 »

Gracias por la respuesta pero tengo una duda persisten respecto al asunto, esto lo ordena de menor a mayor como podría ordenarlo de mayor a menor .
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: C# Duda, comparacion de array int - string
« Respuesta #3 en: 31 Diciembre 2016, 10:32 »

esto lo ordena de menor a mayor como podría ordenarlo de mayor a menor .

Simplemente añade el modificador ascending o descending después de la clausula orderby para indicarle expresamente que se ordene de forma ascendente o descendente.

Sintaxis:
Código
  1. from object in collection
  2. orderby (expression) ascending
  3. select object;

Código
  1. from object in collection
  2. orderby (expression) descending
  3. select object;

Saludos
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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