Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Coffee en 29 Diciembre 2016, 10:11 AM

Título: C# Duda, comparacion de array int - string
Publicado por: Coffee en 29 Diciembre 2016, 10:11 AM
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.
Título: Re: C# Duda, comparacion de array int - string
Publicado por: Eleкtro en 30 Diciembre 2016, 06:42 AM
Puedes simplificar bastante el algoritmo usando LINQ:

Código (csharp) [Seleccionar]
using System.Linq;

Código (csharp) [Seleccionar]
string[] lines = {
   "Nombre=paco    puntos=11 dia=26/11/2004",
   "Nombre=jacinto puntos=1  dia=26/11/2004",
   "Nombre=bartolo puntos=10 dia=26/11/2004"
};

IOrderedEnumerable<string> sorted =
   from line in lines
   orderby Convert.ToInt32(line.Remove(line.LastIndexOf(' ')).
                                Remove(0, line.IndexOf("puntos=", StringComparison.OrdinalIgnoreCase) + "puntos=".Length).
                                TrimEnd(' '))
   select line;

foreach (string line in sorted) {
   Trace.WriteLine(line);
}


Saludos
Título: Re: C# Duda, comparacion de array int - string
Publicado por: Coffee en 31 Diciembre 2016, 05:31 AM
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 .
Título: Re: C# Duda, comparacion de array int - string
Publicado por: Eleкtro en 31 Diciembre 2016, 10:32 AM
Cita de: Coffee en 31 Diciembre 2016, 05:31 AM
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 (csharp) [Seleccionar]
from object in collection
orderby (expression) ascending
select object;


Código (csharp) [Seleccionar]
from object in collection
orderby (expression) descending
select object;


Saludos