.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Linq;
using System.Collections.Generic;
					
public class Program
{
	public static void Main()
	{
		Console.WriteLine("Lista Original:");
		
		List<Entidade> entidades = new List<Entidade>();
		entidades.Add(new Entidade(){ Id =1, Nome = "Teste 1", Avaliacao = Avaliacoes.Ruim });
		entidades.Add(new Entidade(){ Id =2, Nome = "Teste 2", Avaliacao = Avaliacoes.Pessimo });
		entidades.Add(new Entidade(){ Id =3, Nome = "Teste 3", Avaliacao = Avaliacoes.Regular });
		entidades.Add(new Entidade(){ Id =4, Nome = "Teste 4", Avaliacao = Avaliacoes.Bom });
		entidades.Add(new Entidade(){ Id =5, Nome = "Teste 5", Avaliacao = Avaliacoes.Ruim });
		entidades.Add(new Entidade(){ Id =6, Nome = "Teste 6", Avaliacao = Avaliacoes.Regular });
		entidades.Add(new Entidade(){ Id =7, Nome = "Teste 7", Avaliacao = Avaliacoes.Ruim });
		entidades.Add(new Entidade(){ Id =8, Nome = "Teste 8", Avaliacao = Avaliacoes.Bom });
		entidades.Add(new Entidade(){ Id =9, Nome = "Teste 9", Avaliacao = Avaliacoes.Ruim });
		entidades.Add(new Entidade(){ Id =10, Nome = "Teste 10", Avaliacao = Avaliacoes.Ruim });
		entidades.Add(new Entidade(){ Id =11, Nome = "Teste 11", Avaliacao = Avaliacoes.Bom });
		entidades.Add(new Entidade(){ Id =12, Nome = "Teste 12", Avaliacao = Avaliacoes.Excelente });
		entidades.Add(new Entidade(){ Id =13, Nome = "Teste 13", Avaliacao = Avaliacoes.Excelente });
		
		
		entidades.ForEach(x => Console.WriteLine(x.Nome + " / " + x.Avaliacao));
		
		entidades =  entidades.OrderBy(x => x.Avaliacao).ToList();
		

		Console.WriteLine("----------------------------------------------");
		Console.WriteLine("Lista Ordenada:");
		
		entidades.ForEach(x => Console.WriteLine(x.Nome + " / " + x.Avaliacao));
		
		
	}
	
	
	public class Entidade
	{
		public int Id {get;set;}
		public string Nome {get;set;}
	 	public Avaliacoes Avaliacao {get;set;}
		
	}
	
	public enum Avaliacoes
	{
		Excelente = 0,
		Bom = 1,
		Regular = 2,
		Ruim = 3,
		Pessimo = 4
	}
}

;