Linq - Порядок по номеру, затем по буквам

У меня есть список строк, и эти строки содержат числа и слова.

Что я хотел сделать, так это упорядочить его по числам (числовой порядок), за которыми следуют слова (в алфавитном порядке)

Мой список не содержит смеси двух ... вот пример

1, 5 , 500, LT, RT, 400 -> LINQ -> 1, 5, 400, 500, LT, RT

Вот пример того, что у меня есть, он работает, но мне было интересно, есть ли лучший способ его написать?

            int results = 0;
            // Grabs all voltages
            var voltage = ActiveRecordLinq.AsQueryable<Equipment>()
                .OrderBy(x => x.Voltage)
                .Select(x => x.Voltage)
                .Distinct()
                .ToList();
            // Order by numeric
            var numberVoltage = voltage
                .Where( x => int.TryParse(x, out results))
                .OrderBy( x => Convert.ToInt32(x));
            // Then by alpha
            var letterVoltage = voltage
                .Where(x=> !String.IsNullOrEmpty(x))
                .Where(x => !int.TryParse(x, out results))
                .OrderBy(x => x);

            return numberVoltage.Union(letterVoltage)

Спасибо за помощь!

8
задан ChickSentMeHighE 25 February 2011 в 18:12
поделиться