none
Ordenar Lista por order personalizado RRS feed

  • Pregunta

  • Hola a todos:

     Tengo una lista de clases, la clase tiene una propiedad llamada Nombre el cual podria tener estos valores Cs, O, Cp, R tengo la necesidad de poder mostrar esta lista ordenada de la siguiente forma O, R, Cs, Cp...

    ¿Saben si linq tiene alguna funcionalidad para pasarle parametros a OrderBy y poder hacer esto?


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 27 de julio de 2018 17:23

Respuestas

Todas las respuestas

  • Deleted
    viernes, 27 de julio de 2018 17:42
  • Hola Walter:

     Prepare el siguiente ejemplo:

    using System;
    using System.Collections.Generic;
    
    namespace MultiplesTest
    {
        class Program
        {
    
            public static void Main(string[] args)
            {
                try
                {
                    var myList = new List<MyClass>();
                    var limit = 10;
                    for (int i = 0; i < limit; i++)
                    {
                        myList.Add(new MyClass
                        {
                            Id = i,
                            Name = "Cp",
                            Model = "Model1",
                            Price = i + 3
                        });
                    }
    
                    for (int i = 0; i < limit; i++)
                    {
                        myList.Add(new MyClass
                        {
                            Id = i,
                            Name = "O",
                            Model = "Model1",
                            Price = i + 3
                        });                    
                    }
    
                    for (int i = 0; i < limit; i++)
                    {
                        myList.Add(new MyClass
                        {
                            Id = i,
                            Name = "Cs",
                            Model = "Model1",
                            Price = i + 3
                        });
                    }
    
                    for (int i = 0; i < limit; i++)
                    {
                        myList.Add(new MyClass
                        {
                            Id = i,
                            Name = "R",
                            Model = "Model1",
                            Price = i + 3
                        });
                    }
                    
                    foreach (var item in myList)
                    {
                        Console.WriteLine(item.Name);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
    
    
                Console.ReadKey();
            }
        }
    
        public class MyClass
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Model { get; set; }
            public int Price { get; set; }
        }
    }

     como veras en el resultado, la salida de ese codigo esta en el orden en que se fueron agregando a la lista, pero yo quiero poder ordenarlos de la siguiente manera O, R, Cs y al final Cp, como ves, no sigue un orden alfabetico sino uno personalizado...

    Gracias.


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 27 de julio de 2018 18:18
  • Deleted
    viernes, 27 de julio de 2018 18:55