Si necesitas recorrer un array o list en Csharp con determinado orden, ejemplo de forma descendente alfabeticamente hablando, podés hacerlo instanciando una lista de forma ordenada, tal cual te muestro en el siguiente ejemplo.
using System;
using System.Linq;
namespace ConsoleApp9
{
internal class Program
{
private static void Main(string[] args)
{
//Array con valores sin ordenar
string[] array = { "c", "d", "b", "a" };
// Orden descendente
var result = array.OrderByDescending(a => a.ToString());
Console.WriteLine("Resultados ordenados");
foreach (var item in result)
{
Console.WriteLine(item);
}
Console.WriteLine("Resultados sin ordenar");
foreach (var item in array)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
}
}