C#按照字母和长度排序Arraylist字符串

Mic*_*ers 4 c# sorting string arraylist

我想一个排序ArrayListString.

鉴于:

{A,C,AA,B,CC,BB}
Run Code Online (Sandbox Code Playgroud)

Arraylist.Sort 得到:

{A,AA,B,BB,C,CC}
Run Code Online (Sandbox Code Playgroud)

我需要的是:

{A,B,C,AA,BB,CC}
Run Code Online (Sandbox Code Playgroud)

Ily*_*nov 12

ArrayList list = new ArrayList {"A","C","AA","B","CC","BB"};

var sorted = list.Cast<string>()
                 .OrderBy(str => str.Length)
                 .ThenBy(str => str);

//LinqPad specific print call
sorted.Dump();
Run Code Online (Sandbox Code Playgroud)

打印:

A 
B 
C 
AA 
BB 
CC 
Run Code Online (Sandbox Code Playgroud)